论文部分内容阅读
现代互联网应用引发了对海量数据进行并行化处理的需求,越来越多的计算任务需要在拥有成千上万个相互独立的计算节点的装置上完成。于是Hadoop MapReduce作为新一代的编程系统应运而生,它是一个用以处理大规模分布式数据集的编程模型,其最大优势是实现了大规模并行计算。MapReduce集群(也称Hadoop平台)是一个多用户、多作业和多任务共享相同物理资源的环境,群集的性能、资源利用率以及用户体验等方面在很大程度上由调度算法所决定。因此,研究基于Hadoop平台的调度算法具有重要的理论价值和实践意义。本文首先对云计算环境下的作业调度问题和现有的作业调度算法进行了研究,然后重点研究与分析了Hadoop平台下的作业运行机制、作业调度机制及其现有的几种作业调度算法,包括算法的思想、具体步骤及优缺点等内容。在此基础之上,本文还分别从服务质量、数据本地性和资源利用率等几个方面进一步分析了Hadoop平台下现有调度算法所存在的问题,进而提出了一种基于博弈思想的二级调度模型,第一级为作业调度,第二级为任务调度。针对作业级调度,本文将其抽象成了一个动态非合作博弈,提出了一种基于QoS竞价模型的Hadoop作业选择方法,从而实现了作业优先级的优化评估和作业的量化选择。针对任务级调度,本文将其抽象成了一个合作博弈,提出了一种基于匈牙利算法的Hadoop任务调度算法,从而实现了作业完成代价的最小化,减少了作业响应时间。此外,本文还提出了一种基于最小代价流的Hadoop任务调度算法,该算法不仅减少了作业响应时间,而且提高了数据本地性,实现了负载均衡。最后,通过程序编写和集群实验环境的搭建,对本文提出的算法进行了仿真实验,并分别从数据本地性、作业响应时间和负载均衡等三个方面对实验结果进行了比较分析,从而验证了本文算法的正确性和有效性。