论文部分内容阅读
随着云计算技术的迅速发展,在各个领域都出现了云计算应用系统。而且大多数的云计算系统都选择Hadoop平台进行开发和测试。Hadoop是一个开源的代码框架,它实现了对大型数据的并行处理,它的容量较高但是成本低,成为对海量数据进行处理的有力工具。Hadoop能够并行对成千上万的作业进行调度,作业调度技术对作业执行的顺序以及计算资源的分配进行控制。所以选择合适的作业调度算法,对Hadoop的发展有重大影响。 本文主要研究Hadoop平台下的作业调度算法。首先深入分析了Hadoop现有作业调度算法FIFO、计算能力调度算法、公平调度算法的算法思想,以及各调度算法的优缺点。然后在此基础上提出了一种基于作业优先级和大小的作业调度算法。基于作业优先级和大小的调度算法采用的是两重约束策略,来决定集群中作业的调度。第一重判断是先按照作业的优先级,将正在执行的作业和作业队列中的作业的优先级进行比较,如果队列中作业的优先级高于正在执行的作业的优先级,则该作业可以被调度执行在第二重判断中我们讨论,在什么情况下不分配资源。如果队列中的作业的优先级不比正在执行的作业的优先级高,则该作业不被调动执行在第二重判断中我们考虑在什么情况下调度该作业。第二重判断是先根据第一重判断中作业优先级比较的结果,然后利用两作业之间作业优先级和大小之间的关系式,决定是由作业优先级还是作业的大小来决定作业调度。该调度算法大大提高了短作业的响应时间,而对于其他类型的作业没有产生明显的消极影响。最后通过构建Hadoop集群实验环境,将新提出的作业调度算法和集群中现有的几种作业调度算法进行实验比较。实验结果表明我们的算法成功地实现了预期的目标,并且在性能测试中表现良好。