APP下载

基于Hadoop的海量数据处理模型研究和应用

2016-08-25陈锐忠魏理豪梁哲恒邹小武

电子设计工程 2016年14期
关键词:海量数据处理模块

陈锐忠,魏理豪,梁哲恒,邹小武

(1.南方电网公司 信息化评测重点实验室,广东 广州 510000;2.广东电网有限责任公司 信息中心,广东 广州 510000;3.赛迪顾问股份有限公司 广东 广州 510500)

基于Hadoop的海量数据处理模型研究和应用

陈锐忠1,2,魏理豪1,2,梁哲恒1,2,邹小武3

(1.南方电网公司 信息化评测重点实验室,广东 广州510000;2.广东电网有限责任公司 信息中心,广东 广州510000;3.赛迪顾问股份有限公司 广东 广州510500)

文中针对如何从海量数据中提取有用价值信息这一开发应用问题,通过分析现有计算和存储技术,并且结合Hadoop的技术研究,设计了一种海量数据处理模型,该模型是以Hadoop技术为基础的。文中先介绍了分布式系统,然后描述了Hadoop架构,最后介绍了本设计的海量数据处理模型。该模型通过一系列设计可以有效的缓解了网络压力,同时它不需要程序员具有相应专业的经验就可以对超大系统进行整理并且获得所需资源。该模型具有高效率、低成本以及易维护的特性。

Hadoop;海量数据;分布式;数据预处理

当今社会中,Web是最大的信息系统,它的价值主要来自于众多用户产生的数据,那么,如何在具有多样性、传输条件不确定性等特点的海量数据中提取出有价值的信息,这对程序员是一个很大的挑战与难题。随着时代进步以及网络技术的发展,人们处理数据的能力也越来越强大。海量数据对计算机以及服务器都是一个巨大的考验,在处理海量数据问题的过程中有很多困难,针对处理海量数据的问题,主要是将有用的数据从海量数据库中提取出来,最后将有价值信息的数据导入数据库中用于进一步的挖掘。因为Hadoop的模型可以允许程序员不具备开发经验就可以处理大量的系统资源,所以利用Hadoop的优势以及结合Hadoop的技术研究,文中提出了一种基于Hadoop的海量数据处理[1]。

1 分布式系统关键技术

文中所提到的分布式系统指的是分布式软件系统,它的目的是将复杂的大任务分为若干个小任务来处理,最后通过一系列的方法从这些任务中得到结果,并且将这些结果总结成为最后的结果。而且,在所提到的分布式系统处理任务的过程中,这些任务之间并不具有依赖性,相反,相互直接比较独立,也就是说每一个任务的处理并不会受上一个任务处理结果的影响。所以,它的特点是不要求实时性,并且在过程中允许发生错误[2-3]。

2 Hadoop的整体构架

2.1Hadoop核心组件

Hadoop核心组件主要包含两部分,分别是Hadoop Map/ Reduce和Hadoop DFS。

Map/Reduce是一个将比较大的分布式计算转变为一个对数据集合进行操作的编程模型。该模型框架借助于计算机群,将用户定义的任务分布到群众的各点上的计算机中进行任务执行。该模型计算包括两个阶段,分别是map阶段和reduce阶段。

Map阶段,模型架构会将所得到的数据切分开,使其变为一段一段的,然后将所得到的各个片段按照一定的顺序,一一对应的分配给相对应的map任务。每一个服务器都会对分配的数据进行计算并且将计算结果集合。Reduce阶段,每个reduce任务会输入之前整合的数据,任意服务器都会通过一个reduce函数将其变为一个输出对。Map/Reduce框架会将节点上的reduce任务分发然后再把结果数据分配到每个reduce任务中处理。

Hadoop DFS是将海量数据存储在一个大群的多台计算机当中,它将每个文件以分块的形式存储,并且文件的所有分块的大小和复制比例按照一定的规则配置。对于处理这些文件的时候必须要遵守一个严格要求,这个要求就是在任意时段只能有一名程序员在操作[4]。

2.2Hadoop分布式文件系统(HDFS)

Java是HDFS所采用的开发语言,因此,这意味着HDFS可以应用到多种类型的运行平台当中。因此,为了简化系统,一个服务器只存在于一个集群当中,并且这个服务器里所存储的数据就是HDFS中的全部数据。图1为HDFS架构中各名称与数据节点间的关系图。

HDFS用于将海量数据存储在一个集群中的计算机当中,并且HDFS当中的每个文件的排列顺序都是非常合理的,至于数据块的大小,每个数据块都是一样的,除了最后一个,这也就意味着在考虑出错率以后,一个文件中的数据模块都可以进行复制。HDFS中要求最严格的是只写一次而且在任一时间内只能有一个操作者。图2是“块报告”的结构示意图[5-6]。

2.3Map/Reduce执行流程

图3为Map/Reduce的执行流程[7]。

图1 HDFS架构中名称节点和数据节点之间的运行时关系

图2 “块报告"示意图”

图3 Map/Reduce执行流程

下面对每个步骤进行简要介绍:

1)fork:将海量文件分成大小不一的小块数据,大小由用户给出的参数所决定。

2)指派规约任务:程序拷贝中只有一个用于管理的主程序,其余程序都是工作站程序,该程序具有管理机纸指派任务。

3)读取:被指派的工作站读取数据,经过函数处理得到中间键值后,再存入内存缓冲区。

4)本地写入:内存中的数据被划分为R个区域,分别写入本地磁盘当中,在本地磁盘当中的数据再被送到管理机处,管理机再将这些信息传送到执行任务的工作站中。

5)远程读取:执行任务的工作站收到数据位置后,通过远程方式读取本地缓冲数据。工作站读完所有数据以后,将关键字对数据进行排列比较,将具有同类关键字的分为一类。

6)写到输出文件:规约工作站对中间数据进行排列,它给用户的规约函数发送和中间值,规约函数再将结果添加到最后文件当中。

3 海量数据处理模型设计

3.1设计思想

为了满足实际需求,对于该海量数据处理模型的设计提出了3个设计步骤,分别是拆分、重构和融合。同时为了加快模型建立速度,设计思路也要遵循简单的原则,同时也要保证系统的简单、实用和易部署。

我们将系统过程中数据预处理部分拆分成4个部分,分别是数据模式间的切换、数据逻辑之间的计算、无用数据的删除和将数据结果处理成为标准模式。

重构包括了3个方面:1)模型用Hadoop还是DGH;2)ETL要考虑的出错控制、规划空间、用户格式化日志;3)简化数据库的计算负担。

融合部分中要考虑SCP部分应使用原有的PERL ETL还是Hadoop,因此,我们将两种计算模式进行了比较,比较结果如表1所示。

表1 PERLETL和Hadoop比较

3.2功能模块

该海量数据处理模型主要由7个主要的功能模块组成,下面对这7个部分进行简单的介绍。

日志收集模块主要任务是负责从前端机中收集最初的访问日志,并且我们在该模块中还增加了自动配置信息收集功能,方便了可修护设备的灵活性,也提高了设备的可延展性,对信息的查询也很好的方便,这点对大企业比较重要。

格式清洗模块的主要任务是对初始数据中的多个产品的模式进行统一,主要包括几个方面,比如片段的定义、定位等,同时也删除了一些没用的信息,保证了信息的统一以及完整。

导入DFS模块是启动Hadoop计算规则的必要前提工作。最主要的特点是对于不熟悉分布式文件系统的工作人员而言,这个操作也是非常简单的。

规则计算模块是该海量数据处理模型的核心部分。该模块对数据的规则和功能进行设计。用它来处理Web日志的计算非常高效,所以很容易实现相关统计事务。

导出DFS模块,顾名思义,它的任务就是将DFS中产生的数据结果从中导出,并且将其存入相应数据块中。

清理历史数据模块是清理系统处理数据过程中产生的垃圾,有利于下一次的操作。

监控报警模块在整个海量数据处理模型当中都存在,之所以存在是因为它的作用是一种监督和防护,它可以对模型运行的过程中判断是否有错误,如果找到了错误以后也可以及时修正[8]。

4 海量数据处理模型结果分析

将海量数据处理模型所需软硬件条件部署好以后,我们分4组测试并且比较相互特性。

表2 4组测试数据

新旧系统测试比较结果数据表如表3所示。

表3 新旧系统测试比较结果数据表

与此同时,为了判断该海量数据处理模型是否对小数据也具有相同的优势,所以我们针对180M大小的日志数据文件将其在上述条件下进行仿真验证,所得出结果却出人意料,得出的结果于上述结果截然相反。

所以,从以上分析中得出的结论是:基于Hadoop技术的海量数据处理模型在对海量数据进行处理过程中所展现的性能相比于原有处理模式而言,所展示的表现相对好,但是,这种良好的表现有很多限制因素,比如数据的个数、文件的大小、模型处理过程中的复杂程度以及所采用的服务器的个数。这几种条件都不符合时,Hadoop的优势就显示不出来了。

5 结束语

针对分布式系统的关键技术,文中进行了系统的研究。文中通过分析现有计算和存储技术,并且结合Hadoop的技术研究,设计了一种海量数据处理模型,该模型是以Hadoop技术为基础的。文中先介绍了分布式系统,然后描述了Hadoop架构,最后介绍了本设计的海量数据处理模型。该模型通过一系列设计可以有效的缓解了网络压力,同时它不需要程序员具有相应专业的经验就可以对超大系统进行整理并且获得所需资源。该模型具有高效率、低成本以及易维护的特性。最后通过测试以及与其他计算模型相比较,分析结果表明该海量数据处理模型在处理大数据的条件下所表现的性能是非常好的。

[1]朱珠.基于Hadoop的海量数据处理模型研究和应用[D].北京:北京邮电大学,2008.

[2]Cooley R,Mobasher B,Srivastava J.Data Preparation for Mining World Wide Web Browsing Patterns[J].Knowledge& Information Systems,1999,1(1):5-32.

[3]肖桐.应用于海量数据处理分析的云计算平台搭建研究[D].天津:天津科技大学,2011.

[4]魏强,孔广黔,吴云.基于Hadoop的海量医疗小文件处理系统[J].计算机与数字工程,2015(4):733-737.

[5]Jeffrey Dean,Sanjay Ghemawat.Map/Reduce:Simplified Data Processing on Large Clusters.Communications of the ACM,2008,51(1):107-113.

[6]张勇勇.基于Hadoop自动文本分类的研究与实现[D].哈尔滨:哈尔滨工业大学,2012.

[7]辛大欣,屈伟.基于Hadoop的云计算算法研究[J].电子设计工程,2013(3):33-35.

Research and application of mass data processing model based on Hadoop

CHEN Rui-zhong1,2,WEI Li-hao1,2,LIANG Zhe-heng1,2,ZOU Xiao-wu3
(1.CSG Key Laboratory of Software Testing,Guangzhou 510000,China;2.Guangdong Power Grid Information Center,Guangzhou 510000,China;3.CCID Consulting Co.,Ltd,Guangzhou 510500,China)

In this paper,we design a data processing model based on Hadoop technology,which is based on the analysis of the existing computing and storage technology,and combining with the technology of Hadoop.This paper first introduces the distributed system,then describes the Hadoop architecture,and finally describes the design of mass data processing model. Through a series of design,the model can effectively alleviate the pressure of the network,while it does not need to have the corresponding professional experience with the corresponding professional experience can be a large system to collate and get the required resources.The model has the characteristics of high efficiency,low cost and easy maintenance.

hadoop;massive data;distributed;data pre-process

TM933.4

A

1674-6236(2016)14-0101-03

2015-07-27稿件编号:201507171

陈锐忠(1985—),男,广东揭阳人,博士,工程师。研究方向:电力信息化、计算机体系结构。

猜你喜欢

海量数据处理模块
一种傅里叶域海量数据高速谱聚类方法
28通道收发处理模块设计
“选修3—3”模块的复习备考
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
海量快递垃圾正在“围城”——“绿色快递”势在必行
一个图形所蕴含的“海量”巧题
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
一种海量卫星导航轨迹点地图匹配方法
Matlab在密立根油滴实验数据处理中的应用