随着互联网技术的不断发展,面对空前膨胀的海量数据,云计算得到了快速发展。Hadoop平台是Google云计算系统的一个开源实现,目前已成为最流行的开源云计算平台。但是,它的发展时间较短,很多地方还需要改进,其中一个突出问题是作业调度问题。改进Hadoop平台中的作业调度算法,对提升平台的整体性能,进而推动云计算的发展有重要意义。
本文首先讨论了Hadoop平台的相关技术背景和体系结构,重点分析了Hadoop平台的核心组成部分:分布式文件系统HDFS和并行计算模型MapReduce。
其次,以Hadoop平台的主从式结构为基础,详细分析Hadoop平台的作业执行的流程,研究和比较Hadoop平台中现有的三种作业调度算法:FIFO调度算法、计算能力调度算法和公平调度算法,并指出算法的优缺点,为算法的改进提供依据。公平调度算法是多用户多类型作业场景下应用最广泛的作业调度算法。但是,公平调度算法中的延迟等待机制忽略了数据本地性、用户、作业和任务类别的不同对作业调度的影响,应该区分对待map任务和reduce任务,以及不同优先级用户的不同类别的作业。针对这个问题,提出基于优先级的延迟等待公平调度算法。另外,在保证用户和作业公平性的设计前提下,将公平调度算法和加权轮转算法相结合,提出基于加权轮转的公平调度算法。通过作业池间采用公平调度,作业池内采用加权轮转调度的方式,达到保证Hadoop系统吞吐率的同时,降低JobTracker节点负载的效果。
最后,通过搭建实验平台,选择合适的基准测试程序和评估方法,验证基于优先级的延迟等待公平调度算法和基于加权轮转的公平调度算法的优越性,并对实验结果做详细分析。