Spark计算框架性能建模与优化技术的研究与实现

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:chen1155588
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,随着互联网的高速发展,对于企业来说,需要处理的数据量呈爆发式增长,使得原有处理数据的方式已经不能满足现有的需求。MapReduce分布式计算框架的出现解决了很多企业的数据处理需求,但是数据规模的逐渐扩大使得MapReduce提供的计算能力逐渐减弱,MapReduce计算速度的缓慢也逐渐不能满足企业的需求。在这样一种情况下,基于内存计算的Spark被很多企业看中,越来越多的企业选择用Spark进行大数据量的处理任务,同时开始关注Spark的性能提升问题。为了提升Spark框架的计算性能,国内外许多组织和个人从不同方面做出了努力,也提出了很多优化方法。但是通过自动化寻找较优配置参数,来实现性能优化的研究很少。为了弥补这一方向的研究不足,本文提出了一个优化方法,该方法可以针对不同的Spark应用程序给出不同的优化后的参数配置,使得应用程序的运行时间得到优化,从而达到Spark性能优化的效果。本文提出的优化方法的主要思路是:通过建立Spark框架的性能模型,运行小数据集的应用程序,通过修改后的Spark源码收集得到运行信息,再根据提前建立好的性能模型,从而预测出大数据集下应用程序的运行时间,再通过基于代价的优化算法多次迭代调用预测模型,最终给出优化后的参数配置集,使得在该参数配置下应用程序的运行时间近似最优。本论文的主要研究工作包括:(1)植入监控代码,收集应用程序运行数据。在Spark的1.4.0版代码中加入监控代码,收集Task执行过程的数据流和执行时间等信息,收集Job的执行信息以及Stage之间的DAG信息,收集到的信息以XML格式存储在本地,便于下一步的Task预测模型的建立和模拟调度模型的实现。(2)构建预测模型。通过阅读Spark 1.4.0源码,分析应用程序的执行调度过程以及Task的执行过程,根据上一步收集到的数据流、执行时间信息,以及筛选出来的配置参数信息,建立Task的执行时间数学模型。根据收集到的Stage之间的DAG信息实现对Spark调度过程的模拟,从而得到整个应用程序的预测模型。(3)设计并实现优化算法。通过实现随机网格算法、递归随机搜索、遗传算法以及粒子群优化算法,多次迭代给出参数配置集,调用预测模型计算在该参数配置集下的预测运行时间。最终给出优化后的参数配置集,使得应用程序的执行时间得到优化,从而达到Spark应用程序性能调优的目的。本文的实验部分采用Intel提供的HiBench基准测试平台,使用WordCount、Sort、TeraSort、PageRank、Kmeans以及Bayes六个工作负载对本文所研究的Spark性能优化方法进行验证,实验从预测模型的准确性和优化算法的优化效果两方面进行验证,对比了CBO中四种优化算法和RBO的优化效果,最终实验结果表明本文所设计并实现的Spark性能优化方法的优化效果明显高于基于RBO的优化效果。
其他文献
近年来我国经济飞速发展,人们的法律意识逐渐增强,劳动关系矛盾进入到了高发期,劳动争议案件的数量也逐渐增多。除了案件数量的明显增加,其争议内容也越来越复杂,处理难度越
本文通过对质检线工艺线平衡的分析,提出了有效的线平衡改善方法,并进行了实际的应用验证,对于其他生产线的线平衡的改善具有一定的参考价值。
摘 要:轻量化设计是现阶段汽车发展的主要形式,对于节能减排社会的构建有着重要的推动作用。在计重收费的践行与实施过程中,各项油耗法规逐渐的完善了起来,一些重卡厂商提高对轻量化产品的重视。探究轻量化重型卡车的产品设计与开展,对此具体的重卡轻量化的设计思路、技术线路等相关领域进行探究分析,  希望为今后的重卡轻量化提供一定的理论支持。  关键词:轻量化;重型卡车;设计  汽车轻量化的设计在我国节能减排社