论文部分内容阅读
随着大数据计算需求量的快速增长,大数据计算平台的能耗问题日益突出。大数据平台高能耗造成了大量二氧化碳排放导致全球变暖等诸多环境问题。大数据计算平台为各领域提供了快捷的计算服务,因此被广泛使用。由上述内容可知,基于大数据计算平台的能耗研究将具有非常重要的意义。Hadoop生态下的MapReduce框架以分布式计算的方式提供了大规模数据计算的有效途径。然而,MapReduce框架在性能上以及实时处理能力上存在的不足导致Spark计算框架应运而生。当前Spark作为高效、开源的大数据处理框架已成为大多数企业和数据中心的首选。Spark本身提供了FIFO和FAIR两种调度策略,但原生调度策略在任务调度过程中没有考虑能耗问题,因此存在很大降低能量消耗的空间。面对Spark调度中存在的能耗问题,本文完成了如下工作:1.本文提出了一种能效关系策略表用于记录任务在进程上的运行时间和能耗。能效关系策略表在任务调度过程中起到了关键性的指导作用。2.依据Spark提交作业、划分阶段以及分配任务的过程,本文构建了Spark阶段能耗模型、Spark作业能耗模型和Spark应用能耗模型,并提出了Spark能耗调度问题的目标函数。3.以能效关系策略表和Spark能耗模型为基础,本文提出了A型和B型两种能耗感知的Spark调度算法。A型算法在尽量满足数据本地性的条件下,贪心地选择低能耗的节点优先分配任务。B型算法为进一步优化A型算法在任务较少的情况下运行时间过长的问题,将任务均衡分配在节点上,从而缩短运行时间。两种类型的调度算法各自有适用的场景。综上所述,本文提出的两种能耗感知的Spark调度算法均具有能耗感知,动态优化调度的特点。本文从Hibench基准测试集中选取了四种工作负载,做了广泛的实验。实验结果表明本文提出的两种Spark节能调度算法均能有效降低Spark应用程序产生的能耗。与原生调度策略相比,A型算法平均能够降低22%到34%的能量消耗,B型算法平均能够降低20%到31%的能量消耗。