Hadoop作业调度本地性研究与优化.docVIP

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

Hadoop作业调度本地性研究与优化   摘要:作为开源云计算平台的核心技术之一,MapReduce作业处理框架及其作业调度算法,对整个系统的性能起着至关重要的作用,而数据本地性是衡量作业调度算法好坏的一个重要标准,首先本文介绍和分析了MapReduce基本原理,MapReduce作业处理机制和MapReduce作业调度机制及其在数据本地性方面表现出的优缺点等相关内容。其次,针对原生作业调度算法在数据本地性考虑不周全的问题,结合数据预取技术的可行性与优势,通过引入资源预取技术设计并实现一种基于资源预取的Hadoop MapReduce作业调度算法,使作业执行效率更高。   关键词:云计算;Hadoop;MapReduce;作业调度;数据本地性;资源预取   中图分类号:TP393 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.02.014   0 引言   云计算作为一种新型的商业计算模式,是分布式并行处理和网格计算等多种技术的拓展和延伸,代表了当前并行计算技术发展的新阶段。资源调度作为云计算技术的一个重要组成部分,其效率直接影响整个云计算环境的工作性能。而数据本地性是衡量作业调度算法好坏的一个重要标准。   最早的Hadoop版本主要是单用户提交的批处理任务服务,其调度算法采用先进先出(FIFO,First InFirst Out),作为Hadoop默认作业调度器一直沿用至今。它具有简明和易于实现等优点,它主要适用于单个用户提交同一类型的作业。FIFO不会以用户为中心为多个用户提交的多种类型的作业实现合理的安排,这将导致集群整体性能及系统资源利用率低下,甚至造成阻塞。针对FIFO缺陷的第一个尝试解决方案为HOD(Hadoop On Demand),相比于FIFO,HOD对用户提交的小作业响应更快,多个用户提交作业时等待时间大大缩短。然而HOD数据本地性较差,资源利用率低下。Yahoo和Facebook在使用Hadoop的过程中各自针对FIFO的缺陷提出了计算能力调度算法(Capacity Scheduling)和公平调度算法(Fair Scheduling)。但是这两种算法都存在数据本地性和推测执行的问题。   数据预取已经是一种公认的隐藏由缓存丢失引起的数据访问延迟的有效方法,今年也有人用于改进Hadoop作业调度算法中,如Jiong Xie等人利用数据预取技术将任务的输入数据在调度之前从计算节点的磁盘预取到内存中,这样节省了任务执行时读取数据的时间,从而减少作业的响应时间。这虽然较大程度上提高了任务的执行效率,缩短了执行时间,但是并没有对数据本地性进行考虑。王涛等人提出的一种相对于用户访问任务的文件预取与合并算法,Sangwon等人为解决多用户在HOD上共享集群资源时不能保证数据本地性的缺点而提出了基于资源预取和预洗牌的调度策略HPMP,然而,HPMP的首要目标是保证机架本地性而不是节点本地性,虽然对HOD来说数据本地性问题有较大的改善,而对于原生Hadoop来说并不适用。   综上所述,近年来,已经有一些研究者对Hadoop作业调度中的数据本地性问题进行了相应的研究与探索,但是大多数考虑不全面,还有待进一步研究与发展。   针对以上问题引入了资源预取的概念,本文提出基于资源预取的调度算法,先预选出待预取资源的候选节点,然后预选出待预取的非本地map任务,最后进行资源的预取,这样可以保证非本地map任务不用等待即可分配到其存有输入数据的节点,提高数据本地性。本文通过改进Hadoop0.20.2版本上实现改进算法,与Hadoop原有三种作业调度算法进行对比,实验结果表明改进算法可以保证更好的本地性,从而有效的提高了系统资源利用率。   1 基于资源预取的调度算法   该算法主要包括三个大的步骤:预选节点、预选任务和预取资源。由于当前普遍认为reduce任务不存在数据本地性问题,这里仅考虑map任务。   1.1 预选TT   一般在Hadoop中,不会有这一步,JobTracker与TaskTracker之间采用了pull通信模型,这种模型,JobTracker不会主动与TaskTracker进行通信,而总是被动的等待TaskTracker汇报信息并领取相应的命令,TaskTracker可以定时的向JobTracker发送心跳信息,当从节点TaskTracker中有空闲slot时,就会向JobTracker发送心跳信息,当然这里预选TT时,当进行轮询,正好这个从节点有空闲计算槽(slots)时,就把这个空闲节点加入预选队伍中,这是第一种情况,这种情况比较简单。另一种是轮询到的这个节点没有空闲计算槽(slots),这时就需要对这个节点进行判断,判断条件主要是该

文档评论(0)

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

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

1亿VIP精品文档

相关文档