文章编号:1008-0570(2010)05-1-0202-03
《微计算机信息》(测控自动化)2010年第26卷第5-1期
基于Hadoop的海量数据管理系统
AMassDataManagementSystembasedontheHadoop
(北京航空航天大学)
多雪松张晶高强
DUOXue-songZHANGJingGAOQiang
摘要:飞机系统日趋复杂化,使得需要处理的飞行数据规模越来越大,对数据读取速度的要求越来越高。本文设计了一个海
量数据管理系统,该系统基于Hadoop分布式平台,采用的Linux集群技术使存储容量易于扩充,分布式计算框架可以达到高速处理数据的要求。本系统具有数据规模易扩展、处理速度快、安全性高、容易实现等特点,能够较好地满足飞行数据存储管理的要求。
关键词:海量数据;分布式平台;集群系统;分布式计算中图分类号:TP311文献标识码:A
技术创新
Abstract:Theflightdatahasincreasedtremendouslyandhighaccessratetothedataisneededasaircraftsystemsgetcomplex.Inthispaper,wedesignadistributedmassdatamanagementsystembasedontheHadoopplatform,whichuseLinuxcluster.Inthissystemthestorageisscalableandhigh-speeddataprocessingcanbeachievedthroughdistributedcomputingframework.Thede-signedsystemisscalable,fast,secureandsimple,whichcanmeettherequirementsofflightdatastorage.Keywords:MassData;DistributedPlatform;ClusterSystem;DistributedComputing
1引言
随着计算机技术的快速发展,特别是网络的普及,金融、电信、交通等众多行业对信息化的要求越来越高,需要处理的数据量也不断增大。与此同时,人们对高性能联机事务处理能力和复杂查询操作能力的需求也在不断提高。因此,如何存储管理海量
本文对海量飞行数据的存储管理进数据成为当今的研究热点。
行研究。海量数据管理系统,是飞机故障诊断与维护支持系统的一个子系统,其中包含飞机数据库、故障模式库、专家知识库等多个数据库,能够为其它诊断子系统提供海量飞行数据的存储与读取服务。这些飞行数据具有海量、复杂、关联、异构等特性,对存储资源、计算资源、网络资源等都提出了较高的性能要求。如何对这些海量数据进行有效管理,实现高效访问是本文研究的问题。
处理海量数据,必然要面对巨大的计算量,一般的解决方法是采用分布式计算,将计算任务分配到多台机器上并行处理,以
但传统的分布式计算在实际操作中,还存在诸此提高运算速度。
多问题,例如如何有效地分割输入的数据和合理分配计算任务等。因此,如果有一种通用的分布式计算模型,由底层封装任务分配、并行处理、容错支持等细节,而由用户集中精力解决分布式计算的任务表达,就能极大地简化分布式程序的设计。由Google实验室提出的Map/Reduce正是这样一种模型。同时,开源的Hadoop为该模型提供了Java实现,从而为分布式计算提供了平台。
本文基于Hadoop分布式平台设计了一个海量飞行数据管理系统,采用的Linux集群技术使存储容量易于扩充,分布式计算框架可以高速地处理数据,能够较好地满足飞行数据存储管理的要求。文章第2节设计了基于Hadoop的海量数据管理系统的体系结构。第3节着重介绍了系统分布式存储与分布式计
多雪松:硕士研究生
-202-360元/年邮局订阅号:82-946算的实现。第4节对系统的性能特点进行了说明。最后,在第5节给出了结论。
2海量数据管理系统体系结构
根据项目的需要,结合海量数据的大数据量、分布性、异构性等主要特点,我们设计基于Hadoop分布式平台的海量数据管
系统架构如图理系统,采用中间件服务器完成软件的控制部分。
1所示。
图1海量数据管理系统架构
中间件服务器是整个系统的核心部分,也是设计开发的重点,它采用分布式数据库技术、并行事务处理技术等,提供了对海量数据的并行加载存储、并行查询分发等核心功能。从功能组成上,可以分为应用接口层、数据库访问层和数据处理层三个层次,如图2所示。
图2中间件服务器功能组成
《现场总线技术应用200例》
您的论文得到两院院士关注软件天地
文件上,并将这个新版本的映像文件从内存中保存到本地磁盘上,然后删除旧的编辑日志。这个过程称为一个检查点(check-point)。
数据节点将数据以文件的形式存储在本地的文件系统中,它用试探的方法来确定每个目录的最佳文件数目,并且在适当
当一个存储节点启动时,它会扫描本地文件的时候创建子目录。
系统,产生一个与这些本地文件对应的所有HDFS数据块的列表,然后作为报告发送到管理节点,这个报告称为块状态报告。
3)数据组织
客户端创建文件的请求并不是立即发送给管理节点。开始时客户端会先将文件数据缓存到本地的一个临时文件,当这个临时文件累积的数据量超过一个数据块(M)的大小,客户端才会联系管理节点。管理节点将文件名插入文件系统的层次结构中,并且分配一个数据块给它,然后返回数据节点标识符和目标数据块给客户端。接着客户端将这块数据从本地临时文件上传到指定的数据节点上。当文件关闭时,在临时文件中剩余的没有上传的数据也会传输到指定的数据节点上。此时管理节点才将文件创建操作提交到日志里进行存储。
3.2分布式计算模型
分布式计算模型Map/Reduce分为Map和Reduce两部分。Map是将任务分解成n个子任务并下发到相应的节点服务器,各个节点服务器并行的在当地执行任务,并把结果整合返回给中心服务器。数据的存储操作,同样是调用Map/Reduce,将数据下发给节点服务器。这样的并行处理能够保证对数据处理的高速性。
1)Map
Map(in_key,in_value)->list(out_key,intermediate_value)。Map函数由用户编写,将输入的 映射操作是并行的,输入文件集合先被划分为几个“文件片断”,如果单个文件的大小达到会影响搜索时间的程度则将这个 “片段”。文件划分过程不用考虑输入文件的文件也划分为几个 内部逻辑结构。当一个Map任务开始时,对应的会按照规约任务配置好的打开一个新的输出文件进行写操作,然后映射任务会使用从指定的输入格式类获得的记录读取类来读取它的文件块属性。输入格式类负责解析输入,并生成键/值对。用户提供的Map对象会按照定义好的规则去处理输入键/值对,然后调用 输出结果使用一个keyOutputCollector.collect方法选择键/值对。 类和value类。当Map对象的输出被收集齐之后将会对输出对象进行划分。默认的HashPartitioner对象使用hashcode函数作用于key类。 2)Reduce Reduce(out_key,list(intermediate_value))->list(out_value)。Reduce函数由用户编写,将key相同的中间结果转换为最终结果。 对于规约过程,需要先将由映射任务产生的文件拷贝到规约任务所在节点的本地文件系统中。一旦本地数据准备就绪所有的数据都会以追加到文件的方式运行在一个追加阶段。然后经过排序阶段以保证给定一个索引键的所有键/值对是连续排列的。文件被顺序读入后,输入文件中的一个索引键的所有键/值对会被一个迭代器顺次传递给reduce处理,直到下一个索引键开始。输出文件的格式由JobConf.setOutputFormat方法来指定。 邮局订阅号:82-946360元/年-203- 应用接口层:提供对于不同应用的交互接口,以满足不同用户的需求。 数据库访问层:数据库访问层可以屏蔽数据库之间的异构性,能够以服务的方式对外提供数据库访问功能,灵活性比较好,方便运行部署和管理。 数据处理层:数据处理层是中间件服务器的核心部分,包括系统支撑服务和数据处理服务。①系统支撑服务由负载平衡服务、系统管理模块和日志管理模块等组成。其中负载平衡服务用于存储节点的负载均衡和容错管理;系统管理模块用于软件的管理,包括运行状态监测、系统远程部署、自主运行维护等;日志管理模块用于软件运行的日志管理,包括系统运行轨迹、关键事件和状态记录等。②数据处理服务包括并行查询模块、并行加载存储模块、数据字典模块和备份恢复模块。其中并行查询模块提供并行查询、用户自定义事务处理等功能;并行加载存储模块提供对海量数据的并行加载与存储功能;数据字典模块为中间件服务器配置一个全局数据字典,用于维护并行数据库的元数据信息。 3海量数据的分布式存储与分布式 计算 根据前面Hadoop的介绍及本系统的需求,在此,我们采用Hadoop分布式应用平台来实现此海量数据管理系统。 3.1分布式文件系统 HDFS是Hadoop应用中必不可少的一个分布式文件系统,它将海量数据分布存储在一个大集群的多台计算机上,把文件进行分块存储,为实现容错自动进行分块复制。 1)管理节点和数据节点 HDFS采用主/从架构,由一个管理节点(Namenode)和多个数据节点(Datanode)组成。管理节点是中心服务器,负责管理文 关闭、件系统的名字空间以及客户端对文件的访问,比如打开、 重命名文件或目录,同时它还决定了数据块和数据节点的映射 集群中每一个节点配置关系,也可称为管理文件系统的元数据。 一个数据节点,负责管理本节点上的数据存储,并处理客户端的 删除和复制。从内部看,一个文件读写请求,进行数据块的创建、 被分成一个或多个数据块,存储在一组数据节点上。HDFS的架构如图3所示。 技术创新 图3HDFS架构 2)文件系统元数据 任何对文件系统元数据产生修改的操作,管理节点都会使用编辑日志(Editlog)记录下来。文件系统的名字空间,包括数据块到文件的映射、文件的属性等,都存储在映像文件(FsImage)中。内存中保存着整个文件系统的名字空间和文件数据块映射(Blockmap)的映像。当管理节点启动时,它从硬盘中读取编辑日志和映像文件,将所有编辑日志中的事务作用在内存中的映像《PLC技术应用200例》 软件天地 3)Map/Reduce执行流程 Map/Reduce的执行流程如图4所示。 《微计算机信息》(测控自动化)2010年第26卷第5-1期 处理飞行数据的海量数据管理系统,能够较好的满足存储容量、存取速度等性能要求。本系统具有很高的容错性和安全性,任何一个或几个节点出现故障,都不会对整个系统及数据造成较大影响。此外,由于集群节点采用的都是普通计算机,价格低廉,易于实现。 本文创新点:为海量数据的存储管理提供了一种简单实用的实现方法,基于Hadoop分布式平台,采用Map/Reduce计算模型,能够快速高效的处理海量数据。参考文献 [1]JeffreyDean,SanjayGhemawat.MapReduce:SimplifiedDataProcessingonLargeClusters.CommunicationsoftheACM,vol.51,no.1(2008),pp.107-113. [2]赵波,吉立新.基于UML的电信网海量数据处理系统的分析与设计[J].通信技术,2007,11:238-240. [3]许薇.嵌入式数据库的海量存储技术研究[J].微计算机信息,2008,7-2:119-120. [4]孙广中,肖锋,熊曦.MapReduce模型的调度及容错机制研究[J].微电子学与计算机,2007,9(24). [5]房友园,杨树强,贾焰等.基于CORBA的海量数据加载并行任务调度技术研究与实现[C].全国开放式分布与并行计算学术会议,上海,2005. 作者简介:多雪松(1980-),男,河北人,北京航空航天大学硕士研 图4Map/Reduce执行流程 ①fork。将众多文件分成若干小块数据,然后启动集群系统中的众多程序拷贝。在众多程序拷贝中②指派映射/规约任务。有一个管理机(master)主程序,其他的均为工作站(worker)程序。管理机指派空闲的工作站执行映射任务或是规约任务。③读取。被指派执行映射任务的工作站读取相关的数据块,解析出 技术创新 键/值对,经过映射函数处理,得到中间键/值对,存入内存缓冲区。内存中的数据组被划分后写入本地磁盘,其在本地④本地写入。 磁盘的存放位置信息被送回管理机,管理机负责将这些位置信息传送到执行规约任务的工作站。⑤远程读取。当执行规约任务的工作站被告知这些数据的位置,它通过远程方式读取执行然后对数据进行排列,把映射任务的工作站中的本地缓冲数据。 具有相同关键字的数据分为一类。⑥写到输出文件。规约工作站对与中间关键字相对应的中间数据进行排列,它发送关键字和相对应的中间值给规约函数,规约函数的输出结果将被添加到最后的输出文件中。 究生,研究方向为信息与通信工程;张晶(1984-),女,北京人,北京航空航天大学硕士研究生,研究方向为通信与信息系统;高强(1971-),男,四川人,博士,北京航空航天大学副教授,研究领域为无线网络、航空电子。 Biography:DUOXue-song(1980-),male,Hebei,graduatestu-dentofBeihangUniversity,researchinInformationandCommu-nicationEngineering.(100191北京航空航天大学)多雪松张晶高强 通讯地址:(100191北京航空航天大学电子信息工程学院202教研室)多雪松 (收稿日期:2009.06.15)(修稿日期:2009.09.15) 4海量数据管理系统的性能特点 从上面的介绍可以看出,本系统实现起来比较容易,特别是软件编程方面,由于采用了Hadoop平台,编程过程被大大简化。基于Hadoop的特点,本系统能够快速、高效的处理海量数据,在经济的同时,又能很好的满足应用需求。简单、 下面简要概括一下本系统在处理海量数据方面的优势:*易于扩展。随着Hadoop数据节点的增加,很容易增大整个系统的处理容量。 *经济实惠。Hadoop集群处理由大量的廉价计算机组成,使得系统的成本大大降低。 *快速高效。通过数据分发,Hadoop可以在不同的节点上进行本地计算,减少了数据传输。凭借Map/Reduce计算模型的优势,数据处理速度得以大大提高。 *便于管理。本系统为用户提供统一的对多个异构数据库的管理、应用接口及访问界面。注意力集中在数据处理上,多机的通讯等问题由架构提供。 *安全可靠。Hadoop自动维护一份数据的多个副本并自动将失败的计算任务进行重新部署。当某个节点发生故障时,能够保证数据的完整性和可操作性。 (上接第219页)[3]孔凡让,赵吉文,刘维来,等新型圆筒直线电机推力的解析计算与数值方法研究[J].光学精密工程,2004,10(5):525-529 [4]章明涛,肖如鸿电机的电磁场[M].北京机械工业出版社,1998[5]王厚生,永磁电动式导体板磁悬浮列车轨道结构及相关研究.中国科学院电工研究所博士学位论文.2004.5 [6]全力,董顶峰.开关磁阻电机发电原理与仿真分析[J].微计算机信息,2009,1-1,239-241 作者简介:秦伟(1986-),男(汉族),山西大同人,硕士,主要从事电磁场分析等方面的研究;范瑜(19-),男(汉族),教授,博士生导师,从事磁悬浮技术和特种电机研究。 Biography:QINWei(1986-),male(theHannationality),DaTongoftheShanXiProvince,master,Researchontheanalysisofmagneticfield.(100044北京北京交通大学电气工程学院)秦伟范瑜朱熙(SchoolofElectricalEngineeringBeijingJiaotongUniversityBeijing100044,China)QINWeiFANYuZHUXi通讯地址:(100044北京交通大学电气学院509(北))秦伟 (收稿日期:2009.05.13)(修稿日期:2009.08.13) 5结论 本文以Hadoop分布式平台为基础,设计并实现了一个用于 -204-360元/年邮局订阅号:82-946《现场总线技术应用200例》 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务