论文部分内容阅读
随着互联网技术的迅猛发展,IT产业已经逐渐趋于消费化、社会化,日益累积的大数据已经开辟了一个崭新的计算时代,而云计算为这个时代带来了无限机遇与挑战。在Google云计算三大论文和Apache开源社区的推动下,Hadoop逐渐发展为应用最广泛的开源云计算平台。作为其中的核心技术之一,MapReduce作业处理框架及其作业调度算法对整个系统的性能起着至关重要的作用,而数据本地性是衡量作业调度算法好坏的一个重要标准。针对MapReduce原生作业调度算法中的数据本地性问题,论文主要工作如下:首先,对开源云计算平台Hadoop的基础架构和MapReduce相关技术进行研究与分析。重点介绍和分析了MapReduce基本原理、MapReduce作业处理机制和MapReduce作业调度机制等相关内容。其次,详细阐述并分析了目前关于MapReduce原生作业调度算法及其相关改进算法的研究现状,总结出各自的优缺点。针对当前与数据本地性相关的作业调度算法进行了详细的研究分析,总结出当前作业调度算法在数据本地性方面所表现出来的缺陷,为后续研究提供基础。然后,针对原生作业调度算法在数据本地性方面考虑不周全的问题,结合数据预取技术的可行性与优势,通过引入资源预取技术,设计并实现一种基于资源预取的Hadoop MapReduce作业调度算法。在非本地map任务被真正调度之前预先读取其输入数据到待分配的计算节点之上,以一定的网络开销和磁盘空间开销换取数据本地性的提升,从而使作业执行效率更高。最后,通过搭建小型Hadoop实验集群,设计实验场景,分别在集群上配置使用改进调度器与Hadoop原有的三种作业调度器进行对比实验。实验结果表明,改进后的算法不仅在作业的数据本地性方面有较大提升,而且在一定程度上减少了作业的响应时间,对系统的整体性能有较大提升。