Spark任务执行优化技术研究

来源 :东南大学 | 被引量 : 0次 | 上传用户:wai123414
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Spark作为一种基于内存的分布式计算框架,已经广泛应用于大数据处理系统中。它延续了Hadoop MapReduce的计算模型,但是其采用了基于内存的弹性分布式数据集RDD来进行数据处理,有效地避免了Hadoop MapReduce计算过程中的大量磁盘I/O操作,提高了系统执行性能。然而目前的Spark在Shuffle过程中仍然存在着不足:(1)Shuffle Write阶段中的分区倾斜问题;(2)Shuffle Read阶段中的计算节点负载不均衡问题。本文针对目前Spark计算系统中存在的不足,对Spark Shuffle过程中的任务执行优化技术进行研究。首先,针对Shuffle Write阶段中的分区倾斜问题,本文提出了一种Spark均衡数据分区器BSPartitioner(Balanced Spark Partitioner)。通过深入分析Shuffle Write阶段的中间数据分区特性,建立了Spark Shuffle中间数据均衡分区模型,该模型以最小化分区倾斜度为目标,寻找一种Shuffle中间数据均衡分区策略。基于该模型,本文设计并实现了BSPartitioner数据均衡分区算法,该算法通过将Shuffle中间数据均衡分区问题转换为经典的List-Scheduling任务调度问题,有效地实现了Shuffle中间数据的均衡分区,提高了Spark计算系统的执行性能。其次,针对Shuffle Read阶段中的计算节点负载不均衡问题,本文提出了一种基于代价的Shuffle Read Partition放置算法SPOC(Spark Shuffle Partition Placement Based on Cost)。通过将Shuffle Read阶段的Partition放置问题转换为计算节点负载均衡问题,建立了计算节点负载均衡模型,该模型以最小化计算节点间的最大工作负载为目标,寻找一种实现计算节点负载均衡的Partition放置策略。基于该模型,SPOC算法采用两阶段优化的方式获取一种适宜的Partition放置策略,从而保证Shuffle Read阶段中计算节点负载均衡,进一步提高了Spark计算系统的执行性能。最后,基于本文的研究工作对Spark开源计算系统进行了二次开发,搭建了Spark计算集群并使用基准测试工具TPC-D生成不同数据倾斜度和数据量的测试数据进行实验分析,多组实验验证了本文研究工作的可行性和有效性。
其他文献
随着信息化时代的到来,人们的生活越来越离不开计算机,各种文档文件也逐渐从手写版本转化为打印版本。人们每天都会将各种字体进行格式转换,但是目前的格式转换功能仅限于文
摆线是应用最早的齿廓曲线,广泛应用于罗茨泵、螺杆压缩机、钟表、计量仪器仪表、摆线针轮减速器、少齿差摆线泵等重要领域。然而,摆线外啮合齿轮传动的齿根承载能力低、重合
近年来,多智能体系统的一致性因其在人工智能控制中的重要应用,引起了学者们的广泛关注.本文主要研究一般线性多智能体系统的无领导者一致性问题以及领导跟随一致性问题,主要
介绍远程自动抄表技术的原理以及抄表系统各组成部分软件的实现方法。重点论述了基于电能表通信规约(DL/T645—1997)远程自动抄表的关键技术和软件开发流程。
作为中国古典文论集大成之作,《文心雕龙》在西方的翻译研究现状足以透射出西方对中国文论思想体系的基本态度。回溯西方《文心雕龙》英译研究历程,系统梳理主要研究成果,归
大葱是烹饪菜肴的重要调味品,在中餐饮食文化中占有重要的位置。每种植物都具有其特有的生长习性,大葱也不例外。生产过程中,充分了解其生长习性,并根据这些特点进行栽培和管