mapreduce中combine优化机制利用

mapreduce中combine优化机制利用

ID:6057990

大小:38.00 KB

页数:15页

时间:2018-01-01

mapreduce中combine优化机制利用_第1页
mapreduce中combine优化机制利用_第2页
mapreduce中combine优化机制利用_第3页
mapreduce中combine优化机制利用_第4页
mapreduce中combine优化机制利用_第5页
资源描述:

《mapreduce中combine优化机制利用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MapReduce中Combine优化机制利用  摘要:由Apache软件基金会开发的Hadoop分布式系统基础架构,作为一个主流的云计算平台,其核心框架之一的MapReduce性能已经成为一个研究热点,其中对于Shuffle阶段的优化,使用Combine优化机制是关键。文章详细介绍了MapReduce计算框架及Shuffle流程;分别从机理简介、执行时机、运行条件三方面详细阐述了如何利用Combine优化机制;通过搭建Hadoop集群,运用MapReduce分布式算法测试实验数据。实验结果充分证明,正确地运用Combine优

2、化机制能显著提高MapReduce框架的性能。关键词:云计算;Hadoop;MapReduce;Shuffle;Combine中图分类号:TP393.2文献标志码:A文章编号:1006-8228(2013)09-01-040引言15我们正处在一个数据爆炸的时代,数据生成速度之快令人惊讶:纽约证券交易所每天产生1TB的数据,Facebook存储着约100亿张照片占用了约1PB存储容量[1]。由Apache软件基金会开发的Hadoop分布式系统基础架构,正是为了解决海量数据的存储和计算问题,并且由于其高可靠性、高可扩展性、高效性和

3、高容错性,已经成为一种主流的云计算平台[2]。Hadoop核心框架之一的MapReduce,在性能优化和提高等方面的问题已经被学术界和工业界所关注,而其中很重要的一部分是对Shuffle阶段的优化。本文详细介绍了MapReduce框架和Shuffle阶段流程,研究分析了Shuffle优化过程中利用Combine优化机制存在的问题,通过实验和理论分析找出了解决方案,提出了Combine优化机制的执行时机和运行条件,并利用实例数据充分证明了正确地利用Combine优化机制能显著提高MapReduce框架性能。1MapReduce框

4、架1.1框架简介MapReduce是一种能够在普通配置计算机上并行处理大量数据的并行计算框架,使用这个框架,我们只需要编写我们想要执行的简单运算即可,写出的程序自动在集群上并行执行,而不必关心集群之间的调度、数据分布、负载均衡、容灾备份、通信等复杂细节,这些问题都已经被MapReduce框架封装好了。15MapReduce可以让没有任何分布式、并行编程经验的程序员很容易地利用分布式系统的资源[3],用户只需要自己定义map函数和reduce函数,这两个函数的灵感来自Lisp和许多其他函数式语言的map和reduce原语[4],

5、map函数从输入数据中获取键/值对同时生成一个中间键值对集合,reduce函数合并有相同中间键的中间值,从而得到一个想要的结果。MapReduce框架会在任务运行时关注调度任务,并监视任务的执行状况,如果执行失败,将重新执行该任务[5]。1.2实现机制首先输入文件会被用户程序调用的MapReduce库切分成若干64MB大小的数据块,这些数据块在框架中会被自动地创建副本,然后调用fork原语创建数个子程序,在这些子程序中有一个特殊程序master,其他程序都被当作worker程序,一个空闲的worker程序将收到由master分

6、配的一个map任务和reduce任务。worker程序从输入的数据片段中解析出键值对,然后这些键值对被传递给用户自定义实现的map函数,由map函数处理后,生成的中间键值对最终被写到本地磁盘上,master获取到这些键值对在本地磁盘上的存储位置并传送给负责执行reduce任务的worker节点。reduceworker程序使用RPC从负责执行map任务的worker节点所在主机的磁盘上读取这些缓存数据,由于存在不同的key值映射到相同的reduce任务上,因此会进行排序,如果中间数据太大无法在内存中完成排序,那么就要进行外排序

7、[5],最终使得具有相同key值的数据聚合在一起。排序后的中间数据经过reduceworker遍历后,reduceworker程序将每一个惟一的中间key值和它相关的中间value值的集合传递给用户自定义的reduce函数[5]。15当所有的map、reduce任务完成后,用户程序对map、reduce的调用才返回。2Shuffle过程Shuffle过程可以理解为是从map映射输出到reduce消化输入的整个过程,整个过程被称为MapReduce的“心脏”,关乎整个框架性能[1],应用开发人员对MapReduce框架的改进也主

8、要集中在Shuffle阶段。MapReduce框架中Shuffle流程如图1所示[1]。2.1Map端⑴作业提交以后,Map端从输入块中读取record,依次调用map函数进行处理,并映射输出(key,value)键值对。⑵生成的键值对串行化的输出到环形内存缓冲区[7],这期

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。