云计算中MapReduce分布式并行处理框架的研究与搭建
2016-11-24梁芷梧
梁芷梧
摘要:大数据(Big Data)是随着计算机技术及互联网技术的高速发展而产生的独特数据现象。现代社会正以不可想象的速度产生大数据,幸运的是,计算机技术与互联网技术的发展,在产生大数据的同时,也给人们带来了全新的云计算技术。云计算技术带来的大数据处理能力,使得分析和掌握大数据中蕴藏的无尽信息、知识和智慧成为可能。
分布式计算(Distributed Computing)是将数量级大的工程数据划分成若干个小分块,由多个计算机即计算节点分别来计算后将运算结果进行上传,最终把结果进行合并从而得出统一的数据结论的计算过程。并行计算(Parallel Computing)指的是将一个总的计算任务划分成多个子分块,在具备了并行处理能力的计算节点上,分配给不同的处理器,各处理器之间遵循调配机制并行地执行子分块任务,最终达到提升计算规模或者提高计算速度的目的。
在本设计中利用的是Hadoop分布式架构,其主要由3个子项目组成:MapReduce(编程模型和软件框架,用于在大规模计算机集群上编写对大数据进行快速处理的并行化程序)、HDFS(构建于廉价计算机集群之上的分布式文件系统)和Hadoop Common(为整体架构提供基础支撑功能)。着重研究了MapReduce处理框架并建立了一个能够对数据进行可靠处理的分布式系统平台,使其以分布式并行工作方式加快处理速度,从而体现出其在云计算应用中处理大量数据时的优势。最终通过程序测试来了分析MapReduce框架在数据处理中的流程及特点。
关键词:MapReduce;云计算;并行计算;Hadoop;分布式计算
在现代网络科技水平不断提升的态势下,云计算基于并行计算、分布式计算和网格计算之下不断发展,成为了普及性的计算模式,随着云计算和个人高性能计算机技术的纵深发展,单机工作模式逐渐被并行计算模式所替代,MapReduce分布式并行编程模式与传统分布式程序相比,涵盖了并行处理、容错处理、负载均衡等内容,有强大便捷的编程接口,极大地降低了并行程序的开发和设计难度。
一、云计算技术概述
云计算将计算任务分布在大量计算机构成的资源池之上,根据用户的需求获取计算能力、存储空间和信息化服务,是一种自我维护和管理的虚拟计算资源,在专门软件的条件下实现自动化管理,并支持各种应用程序的运行,如:计算集群、存储服务器等,其广义的涵义即为“网络计算”。
1、Google云计算原理
它由分布式文件系统GFS、MapReduce并行计算编程模式、BigTable结构化存储系统构成,是建立在大数据存储能力基础之上的处理操作。在分布式文件系统GFS之中,可以进行大数据、分布式的读写操作,用系统所特有的全局唯一的ID标识进行数据块的识别。MapReduce并行计算编程模式可以将逻辑问题与分布式编辑中的问题相隔离,MapReduce并行计算编程模式可以跨越大量数据节点,分割任务并分配给下层计算节点,执行输入数据的划分、节点业务执行的调度以及容错处理等,实现应用程序的开发,从而服务于Google大数据的处理工作。BigTable呈现出分布式的、稀疏的、有序的多维度Map,具有良好的伸缩性和高可用性。
2、Hadoop云计算系统
Hadoop的内核由HDFS、MapReduce和Hbase组成,是Apache开源组织的一个分布式计算架构,具有良好的可扩展性和高效性,在分布式文件系统HDFS和MapReduce编辑模型相整合的架构中,可以实现Local Data的处理模式,并增加了网络爬虫、Web搜索引擎功能、文档格式插件等,对数据信息进行高效的处理,在这个集群之中,可以对存储在本地磁盘的数据进行计算,这种“本地计算”的模式极大地扩展了传输量,节约了网络带宽占用量,并且还可以进行可扩展的访问,适合于海量数据集的应用运行。
二、云计算中MapReduce分布式并行处理框架的研究设计
Hadoop分布式架构,其主要由3个子项目组成:MapReduce(编程模型和软件框架,用于在大规模计算机集群上编写对大数据进行快速处理的并行化程序)、HDFS(构建于廉价计算机集群之上的分布式文件系统)和Hadoop Common(为整体架构提供基础支撑功能)。
1、MapReduce
MapReduce编程模型及软件框架,是指用于在大规模计算机集群上编写对大数据进行快速处理的并行化程序。其思想是将大规模集群上运行的并行计算加以抽象化,并用两个抽象函数加以表达:Map和Reduce,即:映射和化简,它是在软件框架下对任务进行分解,并汇总中间运行的结果,最终得到终极结果集。
MapReduce的工作原理主要包括以下具体内容:(1)提交MapReduce作业。在提交作业之后,runJob()方法将在每秒轮询作业进度,显示作业的成功状况,对于与记录不符的作业要在控制台加以显示,对于成功的作业,则显示出作业计数器。(2)MapReduce作业的初始化。当JobTracker接收到submitJob()方法的调用之后,由作业调度器对其进行调度,实施初始化,并追踪任务实施的状态。(3)MapReduce任务的分配。JobTracker首先要选定任务所在的作业,在选取好作业之后,JobTracker就可以为该作业分配一个确定的任务。
2、HDFS
这是一个构建于廉价计算机集群之上的、Hadoop架构中的分布式文件系统,有着极高的容错性特征,适用于超大数据信息的应用程序。它通过数据块序列的方式对文件进行存储,利用Namenode节点对所有的数据块,进行复制操作,这主要是为了实现节点故障容错,同时,Hadoop还可以针对集群中的Datanode节点,进行周期性的心跳信号检测,接收相关数据块的状态报告,当Namenode节点可以收到一个Datanode节点的心跳信号,证明这个节点的状态良好,适合用于存储数据信息。
3、Hadoop Common
Hadoop Common为整体架构提供基础支撑功能,它在分布式计算环境中处于底层的存储支持地位和作用,可以为用户提供高速的传输速率,进行应用程序数据的访问。
三、程序测试
通过对云计算分布式并行处理框架系统的测试,MapReduce框架在数据处理中的流程,主要表现为:MapReduce函数库将文件划分为若干个文件块,并在集群上执行处理程序,在执行程序中的主控程序为Master,其他执行程序由Master进行分配,Master根据Worker的具体情况分配Map和Reduce任务,读取输入的信息数据块,对其进行处理,Map函数输出中间结果
四、结束语
综上所述,在计算机网络计算技术不断进步的时代下,云计算融合了并行计算、分布式计算和网格计算模式,成为了一种虚拟化、负载均衡的网络计算模式,在基于MapReduce并行编程模式的条件下,可以使云计算分布式并行处理性能得到极大的改进和提高,并在未来的发展趋势中实现对数据的动态分配。
参考文献:
[1]张琦.基于MapReduce的分布式规则匹配系统的研究与实现[D]. 浙江大学2011
[2]杨玲.面向云计算的MapReduce并行编程模式的研究与应用[D]. 湖南大学2011
[3]周飞凤.MapReduce在科学计算中的研究与改进[D].安徽大学 2013