论文部分内容阅读
当前各种互联网应用都面临着海量数据的存储和处理问题,飞速增长数据对数据处理系统的可扩展性提出了巨大的挑战。以MapReduce为典型的云技术的兴起,为海量数据的处理提供了一套可行的解决方案。作为MapReduce框架的开源实现,Hadoop也越来越受到各企业的青睐,一方面它提供了HDFS,为海量数据的存储提供可靠、高可扩展的存储平台,另一方面,它实现了MapReduce框架,简化了并行应用程序的设计难度,为大规模并行数据处理提供了简单易用的编程框架。然而,随着Hadoop集群规模的不断扩大,许多基于Hadoop平台的benchmark的测试不能反映生产集群的真实负载特征。同时搭建一个同等规模的测试集群,需要一笔昂贵的开销。同时,作为Hadoop平台性能调优的一个重要方面,调度器性能一直都是人们重点关注的问题。而且随着集群用户和作业的不断增加,用户对作业的响应性能也有不同的要求,共享集群中的作业调度问题日渐突出。许多现存的调度器,如公平调度器,计算能力调度器,HOD等在面对这些问题特别是面对作业类型多样化问题时,都显得有些无能为力。本文在分析Hadoop平台原理和技术的基础上进行以下两个方面的研究工作:(1)提出一种负载生成方法,通过分析真实负载中的作业类型,以及还原真实负载的作业提交模型来模拟集群中的真实负载。同时本文设计了一个MapReduce模拟器,能使用少量节点模拟出大规模集群,并对作业的运行过程进行了精确模拟,从而提供了一个完整的Hadoop集群性能测试平台,帮助解决大规模集群的测试问题。经过实验验证,负载生成方法可以精确生成反映真实负载的模拟负载,模拟器可以通过少量节点模拟出大规模集群,并提供较为精确的作业运行模拟。(2)针对作业多样化问题提出了基于静态优先级的抢占调度算法(SPPSA,Static Priority based Preemptive Scheduling Algorithm),该调度算法将调度问题分解为作业池调度,作业优先级调度,任务调度等三个问题,从而提供了作业池级别的公平性和资源控制、作业响应性保证,以及数据本地性保证等功能,经过实验验证,SPPSA可以解决大规模共享集群下用户对作业的不同响应性要求,同时抢占所带来的影响也在可接受范围之内。