一种基于Hadoop的数据处理方法及其系统技术方案

技术编号:10075470 阅读:123 留言:0更新日期:2014-05-24 05:01
本发明专利技术公开了一种基于Hadoop的数据处理方法及其系统,用于数据服务器和MAP程序所在的集群数据服务器之间进行数据交互,包括:步骤S1、当数据服务器收到集群数据服务器的数据请求时,从所述数据请求中提取请求的需求字段同时将源数据转化为KEY/VALUE格式;步骤S2、所述数据服务器从转换为KEY/VALUE格式的数据中提取所述需求字段对应的数据,将所述需求字段对应的数据发送给所述集群数据服务器;步骤S3、当所述集群数据服务器接收到所述需求字段对应的数据时,根据预设的配置信息对所述需求字段对应的数据进行适配识别并进行下一步运算。本发明专利技术通过实现对数据进行筛选后传输,能减少传输数据时的网络带宽,能提高程序执行效率。

【技术实现步骤摘要】

本专利技术涉及数据处理
,尤其涉及一种基于Hadoop的数据处理方法及其系统
技术介绍
Hadoop是一种可靠、高效、可伸缩的能够对大量数据进行分布式处理的软件框架,是基于shared-nothing架构的海量数据存储和计算的分布式系统,它由若干成员组成,主要包括:HDFS(Hadoop Distributed File System,分布式文件系统)、MAPREDUCE(Hadoop并行计算的框架,包括MAP和REDUCE程序),HBase(Google BigTable的开源实现)等。其中,MAPREDUCE作为一套开放式的并行计算框架能够与目前流行的各种分布式产品结合实现灵活的并行计算和分布式计算功能,可以将HDFS、HBase、Cassabdra(一个混合型的非关系的数据库)等平台的数据作为MAPREDUCE的输入源进行并行加工处理,并将处理后的数据输出到HDFS、HBase、Cassabdra等输出源中。MAPREDUCE的计算过程简而言之,就是将大数据集分解为成百上千的小数据集,每个或若干个数据集分别由集群中的一个节点(通常是一台普通的计算机)进行处理并生成中间结果,然而这些中间结果又由大量的节点进行合并,形成最终结果。其中,MAP接受一组数据并将其转化为一个键值对;REDUCE接受MAP输出的数据,然后根据他们的键进行相应的运算并输出结果。MAPREDUCE计算模型的原理是:利用一个输入KEY/VALUE对来产生一个或一批输出的KEY/VALUE对,其核心中利用两个函数即MAP和REDUCE来表达这个计算,而函数MAP和REDUCE由用户来实现。在MAPREDUCE框架中,每一次计算请求被称为作业。在分布式计算MAPREDUCE框架中,分两步完成这个作业:首先将该作业拆分成若干个MAP任务,分配到不同的机器上去执行,每一个MAP任务将输入文件的一部分作为自己的输入,经过一些计算,生成某种格式的中间文件,其格式与最终所需的文件格式完全一致,但是仅仅包含一部分数据。等到所有MAP任务完成后,进入下一个步骤,用以合并这些中间文件获得最后的输出文件。此时,系统全生成若干个REDUCE任务,同样也是分配到不同的机器去执行,它的目标就是将若干个MAP任务生成的中间文件汇总到最后的输出文件中去。经过上述步骤,作业完成,所需的目标文件生成。整个算法的关键,就在于增加了一个中间文件生成的流程,大大提高了灵活性,使期分布式扩展性得到了保证。在Hadoop的MAP/REDUCE程序中,输入数据通过MAP程序之后经过排序之后,将排序后的数据输出到REDUCE成程序,经过REDUCE处理之后进行输出,其处理过程示意图如图1所示。在Hadoop分布式系统中,输入数据INPUT DATA可能存储在不同的服务器上,MAP程序也运行在其他的不同服务器,输入数据要经过网络将该台服务器上的数据传输到一台或多台MAP程序所在的集群数据服务器,MAP的输出也需要传输到其他的REDUCE程序所在的集群数据服务器作为其输入,如图2(a)所示。例如,MAP的输入数据会被分成100M的小块并分别存储在不同的INPUT DATA服务器中,当接收到其他服务器上的MAP程序的请求时,服务器会将所述100M的文件全部发送给相应的服务器,但是,这100M的数据中只有很少的数据能被MAP程序所应用,即上述100M的数据中大部分都为冗余数据,不仅浪费了MAP程序所在服务器的内存占用,且在数据传输过程中需要占用大量的网络带宽。为了解决上述问题,现有技术提供了如下方案:方案一,DATA-NODE服务器中的输入数据以行式存储和传输,在数据传输过程中,整行数据都要传输给相应的MAP程序供程序计算。该方案的缺点是,MAP输入数据为整行数据,而整行数据并非完全是程序需要,在MAP阶段需要丢弃掉这些字段,这样大部分数据占用网络I/O,并且增加了MAP服务器的内存占用。方案二,采用改变数据存储格式,并对Hadoop进行相应的修改,来满足数据读取需要。该方案的缺点是,对程序修改量比较大,需要专业的人员进行较为长期的开发之。方案三,专门人员整理需求,用来对上述INPUT数据(100M)进行预处理形成适合各个MAP程序处理的比较轻便的需求字段对应的数据,即中间数据,并将中间数据存储在相应的服务器中,由于MAP程序所需要的数据都不相同,因此会生成大量的中间数据,生成的中间数据过滤掉很多字段,然后供其他的需求使用,这样在以后的MAP/REDUCE中,便可以在执行过程中传输较少的数据。该方式的缺点首先是需要人力的投入进行需求的收集,其次是生成的中间数据需要占用大量的磁盘空间,第三是不够灵活,如果MAP程序的需求发生更改时需要重新生成中间数据等。
技术实现思路
本专利技术的目的在于提出一种基于Hadoop的数据处理方法及其系统,实现对数据进行筛选后传输,能够使得网络带宽减少,各服务器内存占用减小,执行效率提高。为达此目的,本专利技术提出了一种基于Hadoop的数据处理方法,用于数据服务器和MAP程序所在的集群数据服务器之间进行数据交互,包括:步骤S1、当数据服务器收到集群数据服务器的数据请求时,从所述数据请求中提取请求的需求字段同时将源数据转化为KEY/VALUE格式;步骤S2、所述数据服务器从转换为KEY/VALUE格式的数据中提取所述需求字段对应的数据,将所述需求字段对应的数据发送给所述集群数据服务器;步骤S3、当所述集群数据服务器接收到所述需求字段对应的数据时,根据预设的配置信息对所述需求字段对应的数据进行适配识别并进行下一步运算。进一步地,步骤S1中所述将所述源数据转化为KEY/VALUE格式具体为:当所述源数据为列结构的数据时,将所述源数据转化为KEY/VALUE格式;当所述源数据不为列结构的数据时,先将所述源数据格式化为列结构的数据,再将所述列结构的数据转化为KEY/VALUE格式。进一步地,所述将数据转化为KEY/VALUE格式具体为通过MAP/REDUCE将数据转化为KEY/VALUE格式。进一步地,所述源数据包括磁盘上存储的文件数据、磁盘上存储的XML格式的数据和/或数据库中存储的二维表数据。根据本专利技术的同一构思,本专利技术还提供了一种基于Hadoop的数据处理系统,用于数据服务器和MAP程序所在的集群数据服务器之间进行数据交互,所述数据服务器包括数据格式化模块和数据过滤模块,所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Hadoop的数据处理方法,用于数据服务器和MAP程序所在的
集群数据服务器之间进行数据交互,其特征在于,包括:
步骤S1、当数据服务器收到集群数据服务器的数据请求时,从所述数据请
求中提取请求的需求字段同时将源数据转化为KEY/VALUE格式;
步骤S2、所述数据服务器从转换为KEY/VALUE格式的数据中提取所述需求
字段对应的数据,将所述需求字段对应的数据发送给所述集群数据服务器;
步骤S3、当所述集群数据服务器接收到所述需求字段对应的数据时,根据
预设的配置信息对所述需求字段对应的数据进行适配识别并进行下一步运算。
2.如权利要求1所述的基于Hadoop的数据处理方法,其特征在于,步骤
S1中所述将所述源数据转化为KEY/VALUE格式具体为:
当所述源数据为列结构的数据时,将所述源数据转化为KEY/VALUE格式;
当所述源数据不为列结构的数据时,先将所述源数据格式化为列结构的数据,
再将所述列结构的数据转化为KEY/VALUE格式。
3.如权利要求2所述的基于Hadoop的数据处理方法,其特征在于,所述
将数据转化为KEY/VALUE格式具体为通过MAP/REDUCE将数据转化为KEY/VALUE
格式。
4.如权利要求3所述的基于Hadoop的数据处理方法,其特征在于,所述
源数据包括磁盘上存储的文件数据、磁盘上存储的XML格式的数据和/或数据库
中存储的二维表数据。
5.一种基于Hadoop的数据处理系统,用于数据服务器和MAP程序所在的
集群数据服务器之间进行数据交互,其特征在于,所述数据服务器包括数据格
式化模块和数据过滤模块,...

【专利技术属性】
技术研发人员:薛洪贺罗峰黄苏支李娜
申请(专利权)人:北京亿赞普网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1