论文部分内容阅读
大数据时代,关系型数据库不再适合存储海量的大数据,如何存储和处理海量数据已成为一个难题。Hadoop的出现使问题出现了转机,它是一个对大量数据进行分布式处理的软件框架,其核心包括 HDFS(分布式文件系统)和 MapReduce编程模型。HDFS用于存储数据,解决了大数据存储的难题。用户通过编写Map Red uce程序,并在集群中运行MapReduce程序进行数据处理,解决了大数据分析处理的难题。 Hadoop所采用的调度算法对 MapReduce的性能具有很大影响。本文首先分析了Hadoop自带的三种调度器:FIFO调度器,计算能力调度器和公平调度器,然后通过分析LATE调度算法的不足,提出了改进LATE调度算法三种不足的LATE-BLC调度算法。本文的主要工作如下: (1)考虑节点性能均衡的问题,根据节点任务执行的历史记录评估节点的性能,不再采用固定任务槽的设定,提出了根据节点的性能动态调整任务槽数量的方法。 (2)考虑数据本地性的问题,提出了优先考虑任务数据本地性的方法。当有空闲节点请求JobTra cker分配任务时,首先优先找出需要空闲节点数据的慢任务,并且为该任务执行备份任务,从而提高了任务本地性,减少了数据的跨机架传输,减轻了带宽压力。 (3)在确定任务的剩余时间方面,抛弃了固定划分时间比例的方法,采用动态调整时间比例的方法。在本地节点记录下完成任务的历史信息,对任务各子阶段所占的时间比例进行动态调整,提高了计算任务进度值的精确度和任务剩余时间的准确度,更加精确地找到需要备份执行的慢任务。 (4)提出LATE-BLC调度算法,在LATE调度算法的基础之上,提出了LATE-BLC调度算法,LATE-BLC调度算法综合考虑了节点性能均衡问题、数据本地性问题和任务的剩余时间问题。 最后搭建 Hadoop集群环境,通过配置不同的调度器运行作业,并记录作业的响应时间。实验结果表明,LATE-BLC调度算法缩短了作业的平均执行时间,提高了系统资源的利用率。