基于Hadoop平台的MapReduce模型任务调度算法的研究与改进.docVIP

基于Hadoop平台的MapReduce模型任务调度算法的研究与改进.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Hadoop平台的MapReduce模型任务调度算法的研究与改进.doc

  基于Hadoop平台的MapReduce模型任务调度算法的研究与改进 摘要:对Hadoop平台下现有的调度算法进行分析研究。在MapReduce计算模型下,针对Reduce阶段的任务调度问题提出在异构Hadoop环境下新的调度算法,算法在最大程度上提升 数据本地性的同时考虑各处理机节点的不同处理能力。对该算法进行实验和性能分析,表明该算法在减少调度时间方面有较好的表现,同时可以适用于更加符合实际的异构Hadoop机群系统中。 中国 8/vie   关键词:Hadoop;MapReduce模型;任务调度   中图分类号:TP311.13 文献标识码:A :1007-9416(2017)02-0144-02   1 引言   随着计算机与网络技术的发展,通过网络进行传输、处理的数据流急剧增加,这也给传统的计算模式带来极大的挑战,在此情形下,云计算平台以强大的计算机能力和低廉的实现代价得到了广泛的应用。MapReduce是Google在2004年提出的用于处理海量数据的一个高效的并行计算模型,这种模型向程序员屏蔽了复杂的内部细节,并提供了简单的编程接口,这样大大缩短了分布式程序员的开发周期,因此得到广泛应用。而Hadoop作为MapReduce的开源实现,它提供了一个高可靠性、高容错性、良好的扩展性的分布式文件系统,因此被诸多企业应用于数据的存储与处理中。MapReduce的任务调度算法对Hadoop平台的性能有着非常重要的影响,但是,在实际环境中,MapReduce的任务调度依旧存在着不少的缺陷,因此许多学者与组织在此课题上做了不少的研究。   2 研究进展分析   在Hadoop平台中,机群节点数通常很多,因此,数据本地性是调度算法所要考虑的一个非常重要的指标,因为数据在网络中传输需要时间,且在不同机架之间传输需要的时间更多,从而会导致作业的执行周期变长,同时也会增加网络传输的开销。   MateiZaharia等人提出的延迟调度算法(Delay Scheduler)是目前研究的热点,该算法以牺牲公平性和响应时间来最大限度的保证作业在本机节点上被执行,并且设定一个时间阈值,在时间阈值内,让非本地任务进行等待。因此,当集群中大部分作业为小作业时,该算法可以大大提高数据本地性。针对该算法中时间阈值的设定,文献[1]和文献[2]通过节点负载量和节点释放速度进行分析,提出在运行中自适应调整时间阈值。以上研究都是提高Map阶段数据的本地性。   综上所述,许多研究学者为了提高Hadoop系统的各方面的性能,围绕MapReduce作业调度算法进行了大量的研究与改进,然而,其中大部分对Reduce任务的调度算法的研究较少。同时,他们更多考虑的是机群中节点具有相同处理能力的同构环境,从而限制了调度算法的应用范围。本文从提高数据本地性的角度出发,考虑更加符合实际应用的异构环境下的Reduce任务的调度算法。   3 MapReduce计算模型   在MapReduce计算模型下,把运行于大规模集群上的复杂的并行计算过程高度的抽象为两个函数:Map和Reduce。一个Map/Reduce作业(job)通常会把输入的数据集划分为若干独立的数据块,由Map任务以完全并行的方式处理它们。框架会对Map输出进行排序,然后把结果输入给Reduce任务。过程如图1所示。   通常,Map/Reduce框架由一个单独的Master JobTraker 和集群中节点上的Slave TaskTracker共同组成。Master节点负责调度构成一个作业的所有任务,这些任务分布在不同的Slave节点上。Master监控它们的执行,并重新执行已经失败的任务,而Slave节点负责执行由Master指派的任务。   4 新的调度算法   然而,在执行Reduce阶段任务时,由于数据和Reduce( )可能处在不同的节点上,因此在通常情况下需要通过数据或者Reduce任务的转移来实现数据的正常处理,为了避免在转移时花费巨大的网络开销和时间延迟,就要从根本上减少后期数据或Reduce任务的转移,提高数据的本地性。   4.1 Map阶段   由于本文考虑的是异构机群系统,因此每个处理机节点的处理能力可能都不一样,为了能够减少任务调度时间,根据处理能力的高低来分配数据,处理能力强的节点分配更多的数据块。这样,处理能力强的计算机节点上在该阶段结束后也会拥有更多的Map结果集,会减少Reduce阶段数据的转移。   4.2 Reduce阶段   在该阶段,由于Reduce任务所需要的数据块分布在不同的处理机节点上,为了减少数据的?D移带来的时间及网络消耗,本文也尽量的将Reduce任务调度到拥有最多所需数据集的节点上运行。   就Reduce任务

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档