论文部分内容阅读
分布式计算作为一种高性能、海量存储和高可靠性的计算方式,是解决当前大规模数据集处理问题的主要手段之一。MapReduce并行分布式编程模型通过封装实现了底层细节的隐藏,大大降低了分布式计算中并行程序的编写难度,有效推进了分布式计算在大规模数据集处理方面的发展和应用。虽然现有调度算法有效提升了MapReduce的并行计算性能,但它们都是根据作业调度过程中影响任务分配优劣的某一方面因素进行的改进,存在任务分配标准单一和多作业环境下对影响作业调度的因素考虑不全面的问题,这就降低了分布式计算系统的有效资源使用率和系统的吞吐率。本文在对MapReduce作业调度进行形式化分析的基础上,针对这两个问题进行了分析研究,提出了多作业环境下基于饥饿度的MapReduce作业调度算法。使用饥饿度表示多作业环境下作业中的任务与任务服务器之间的匹配程度,通过对任务在不同任务服务上的执行成本的综合比较实现任务的快速分配,从而达到最大化系统吞吐率和最小化单个作业完成时间的目的。为了验证所提算法的可行性与有效性,本文利用基于Microsoft Visual C++6.0设计和开发的一个软件对MapReduce模型中作业的调度过程进行了仿真模拟,并以此为基础分别对算法中的任务分配模式和多作业环境下的作业调度方法设计了仿真实验。通过对实验数据的分析可以证明,在多作业环境下,相比常用的MapReduce调度算法,基于饥饿度的调度算法在降低任务的执行成本、缩短作业完成时间和提高系统吞吐率方面有着明显的优势,达到了算法设计的预期目标,从实验角度印证了论文思路的可行性。