论文部分内容阅读
随着大数据技术在业界和学术界的发展,大量的分布式计算平台投入运行,其中以Apache Hadoop平台应用最为广泛。Hadoop屏蔽了分布式系统的底层实现细节,使得应用程序开发人员可以更加专注于算法逻辑的实现。但是,Hadoop也有其局限性,在处理如图计算以及机器学习等问题时,其效率并不高。基于BSP(Bulk Synchronous Parallel)模型的Apache Hama并行计算框架的出现,弥补了Hadoop的这一缺点。但是,由于Hama创建时间不长,发展时间较短,在很多地方仍需继续改进,尤其是其核心模块—作业调度器。Hama目前使用的先来先服务作业调度算法,不仅无法高效的实现多用户共享集群,而且还会对集群的资源利用率造成很大的影响。本文的目的就是实现一种新的基于Hama并行计算框架的作业调度算法,弥补Hama先来先服务作业调度算法的缺点,提高其资源利用水平,并为Hama的作业调度提供更大的灵活性,以满足其未来一段时间内的发展需求。为了达成这一目的,本文的主要工作和贡献包括:首先,通过研读Hama并行计算框架的源代码,剖析了Hama的系统架构,介绍了BSP模型在Hama中的实现,总结了Hama作业的运行流程,研究了Hama的调度框架以及其先来先服务作业调度算法。与此同时,还对Hama中涉及到的HDFS及MapReduce的相关技术进行了总结,并分析总结了MapReduce与Hama在调度模式上的不同之处。随后,以上述研究的成果为基础,再结合BSP模型的自身特点,设计并实现了基于Hama并行计算框架的多层级作业调度算法,并对该算法的设计思想以及实现过程进行了详细的介绍。最后,对多层级作业调度算法进行了实验验证及性能测试。实验结果表明多层级作业调度算法成功的实现了预期的设计目标,解决了Hama先来先服务作业调度算法的不足之处,提高了Hama集群的资源利用能力,并在与Hama先来先服务作业调度器的性能对比测试中表现较为出色。