论文部分内容阅读
Hadoop通过MapReduce实现了一种分布式处理机制,成为处理大数据问题的首选工具。Hadoop平台通过简单的编程接口实现合理的作业调度。作业调度负责集群内的计算资源以及作业的调度执行。作业调度技术影响Hadoop平台的性能以及系统中资源利用率。合理的调度算法能有效提高系统处理作业的效率。因此,本文重点研究作业调度算法,首先进行作业优先级的优化,并在此基础上根据任务的负载情况进行合适的任务调度。为了满足不同用户的需求,搭建Hadoop集群对动态优先级的混合任务调度策略进行改进,改进后的方法通过作业静态优先级,作业的任务价值以及作业的预计完成时间三个参数,从多维度计算出作业的新的优先级,按优先级的高低进行资源分配,解决了资源分配不均导致紧急任务得不到处理的问题,提高系统性能。随着时间的改变作业的优先级会发生动态变化,一个作业运行完成后重新遍历作业队列选择新的作业。针对Hadoop集群在默认的任务调度策略下,产生大量的非本地任务,增加网络传输时间,影响作业的平均运行时间,降低Hadoop系统资源利用率的问题,提出一种负载均衡的任务调度策略。在该方法中,如若节点的本地任务预计完成时间小于全部节点执行本地任务的预计完成时间的平均值,及为负载较轻的节点,反之较重。执行任务的过程中,先对节点的负载情况进行判断,根据节点的负载情况合理分配任务,该策略可以防止某些节点空闲而其他节点任务繁重的情况的发生,以此提高集群处理数据的能力。本文采用了可行性对比实验进行测试分析,在同等实验环境下,对改进后的调度算法以及原有调度算法在数据本地性,作业完成时间两个指标上进行了算法的性能对比,实验结果表明,改进后的调度算法在提高数据本地性和减少作业平均完成时间方面有一定成效,在数据本地性上提高了 20.8%,作业的平均完成时间降低了 27.04%,使得作业队列合理有序的运行,作业调度长度更短,系统实时性能得以提高。