论文部分内容阅读
作为一个近年来兴起的概念,云计算是数十年来虚拟化、分布式计算、效用计算技术研究以及网络和软件服务的发展的结晶。云计算加速了IT产业的变革,用户按需得到服务,促进了面向服务架构的发展,减少了获得服务的费用,降低了服务提供商的花销,同时也为服务提供了极大的灵活性。MapReduce是云计算的常用编程模式,大规模的MapReduce集群常常用于处理PB级别的数据量,因此系统的执行效率就尤为重要。云作业调度是云计算中的一个重要组成部分,它能够将用户提交的作业与合适的资源进行映射,减少作业的执行时间,增加系统的吞吐率,合理的作业调度能使得集群利用率得到大幅提高。本文具体分析了云计算的背景,在归纳了学术界对云计算作业调度的代表性研究成果后,针对传统Min-Min算法在负载均衡以及作业平均完成时间上的不足,提出了一种Max-D调度算法,将任务分配到合适的空闲资源执行,并结合MapReduce的特点对算法进行了改进,使得Max-D算法在作业差别较大的环境下也能保持较好的性能。Hadoop作为开源的云平台实现,被业界广泛研究和应用。本文以Hadoop作为验证平台,研究了Hadoop中的作业调度的实现方法,剖析了Hadoop中两种常用的调度算法:FIFO和公平调度。本文通过比较Max-D算法和传统方法的性能,给出各算法在调度消耗、作业平均完成时间以及公平性三个方面的表现,总结出三种算法各自的适用场景,并提出一个新的基于负载监控的混合调度策略,通过对集群内负载的监控,选择合适的调度方法进行作业调度。最后,在Hadoop实验环境,对算法的性能进行测试。测试(一)得出了Max-D算法中参数的合适取值;测试(二)是将Max-D算法以及Min-Min算法进行比较,证明了Max-D算法要优于Min-Min算法;测试(三)使用FIFO算法、公平调度算法、Max-D算法以及混合调度策略调度处理相同作业和不同作业,验证了混合调度策略在不同负载下都能保持集群的性能。