论文部分内容阅读
近年来,Hadoop技术不管是在科研方面还是在应用方面都取得了巨大的发展,作业调度技术作为Hadoop平台的核心技术之一,其目的是调度作业执行的顺序和分配计算资源。作业调度算法的好坏将直接影响到整个平台的计算性能。到现在为止,Hadoop认可的调度算法都有一定的不足,先进先出(FIFO)是针对单用户来设计的,它忽略了不同作业之间存在的差异,计算能力(CapacityScheduler)队列设置和作业选组无法自动进行,计算能力(Fair Scheduler)没有考虑当前系统各节点的负载情况。在现有调度算法不足的基础上提出了基于数据本地性的类时间片轮转算法,该算法考虑作业的优先级和作业与运算节点之间的数据本地性,设定一个避让阀值,来解决数据本地性和优先级之间的先后关系,采用类时间片轮转方式,来确保任务间的并行运行。在保证优先级的前提下尽量满足作业的数据本地性,每次调度都从作业队列中选择对当前节点来说最优作业进行调度。这样既能保证优先级高的作业不会因其他作业的数据本地性而造成响应时间延长,又能保证系统整体较短的响应时间。然后对算法的思想、具体实现、预期目标做了详细的阐述。最后编写代码对提出的算法进行实验测试。实验结果表明,新提出的调度算法与Hadoop现有调度算法相比,可有效的缩短作业的响应时间。