面向内存计算的Spark性能优化技术研究
发布时间:2021-01-05 00:58
大数据平台Spark近年间已逐渐成为业界热点,其基于内存计算的特性在机器学习和神经网络等迭代式应用场景中可以提供非常快的任务运行速度,现已被应用于百度、美团、腾讯和阿里巴巴等公司的业务中。最大的Spark集群拥有数千节点和TB级内存,支持处理的数据量级高达PB级,然而集群节点之间因为地域差异、配置更新和集群扩展等原因往往存在较高的异构性,如何更好的利用集群中的资源来提高平台性能现已成为当前研究的热门方向。本文针对Spark运行过程中的任务调度与缓存替换两个方面,对其性能优化技术进行深入的研究与改进,主要工作分为两部分,即提出基于改进量子蚁群算法的任务调度机制和提出基于RDD权重和双队列的缓存替换与预加载机制。下面将详细介绍上述两部分的研究工作:1.提出一种基于改进量子蚁群算法的任务调度机制。针对Spark默认任务调度机制导致高性能节点的硬件优势无法被充分利用,从而造成任务分配不均和内存频繁溢出的问题,首先,综合考虑节点的硬件能力、当前状态和网络传输速度,结合内存溢出现象对任务完成时间造成的影响,从而设计一种异构集群中的任务完成时间度量方法。然后在量子蚁群算法的基础上进行改进,通过最大最...
【文章来源】:重庆邮电大学重庆市
【文章页数】:76 页
【学位级别】:硕士
【部分图文】:
随数据文件大小变化的任务完成时间情况1并统计上述多次仿真实验中各算法的最优解、最差解、采用最优解和最差解之间的极差R来表示其波动性,以及其标准差σ来体现各算法解的稳定性,如表
重庆邮电大学硕士学位论文第3章基于量子蚁群算法的任务调度机制33从实验结果可以看出,本文提出的改进量子蚁群算法与ACO和QACO算法相比,可以进一步寻找更优的分配方案,实现任务完成时间的优化。从上述图表中可以看出,无论是多次仿真结果的均值,还是其在多次仿真实验中取得的最优解,本文提出的改进量子蚁群算法在解方案的质量上都略优于ACO算法和QACO算法,在总体任务完成时间方面,本文提出的改进量子蚁群算法相较于ACO算法缩短15.61%,相较于QACO算法缩短1.06%。取20次重复实验中各算法解的极差R和标准差进行分析,可以发现在数据文件大小不同的情况下,本章提出的改进量子蚁群算法上述两项指标都低于ACO算法和QACO算法,故改进量子蚁群算法寻找到的解相较于ACO算法和QACO算法来说都较为稳定,在最优解附近波动的范围校随机选取一次仿真实验的过程,针对改进量子蚁群算法、ACO算法、QACO算法的收敛过程,绘制包含其迭代轮次和对应的最优解值的比较图,如图3.4所示。其中图3.4(a)包括全部1000次迭代轮次,而由于算法初期收敛速度较快,为了能更清晰地进行展示,选取算法初期的前60轮迭代情况展示在图3.4(b)。(a)(b)图3.4随着迭代轮次变化的收敛情况图3.4描述了三种算法的当前最优解随迭代次数增加而变化的趋势,从图中可以看出在算法初期,虽然ACO算法的收敛速度很快,但是一段时间之后该算法出现早熟现象,陷入停滞状态并无法继续进行全局搜索,最终陷入局部最优解。而本文提出的改进量子蚁群算法由于采用灾变作为种群进化后期的扰动因素,并对量子信息素概率幅上下限进行了控制,从而一直保持种群进行全局搜索的能力,使算法结果随着迭代轮次的增加呈波动下降的趋势,最终搜索到相较于ACO算法和QACO算法更优的解。
重庆邮电大学硕士学位论文第3章基于量子蚁群算法的任务调度机制34再验证本章设计的基于改进量子蚁群算法的任务调度机制Spark默认任务调度机制、RBA算法[17]比较,在任务完成时间和内存溢出次数上是否得到了优化。针对不同大小的数据文件,采用和上述实验相同的方法,将本章提出的基于改进量子蚁群算法的任务调度机制与Spark默认任务调度机制、RBA算法进行比较,仿真测试其任务完成时间。本章提出的量子蚁群算法取迭代轮次1000次,个体数为120,为了保证实验的公平性,每组实验执行20次,取其平均值作为最终结果,绘制成柱状图如图3.5所示。图3.5随数据文件大小变化的任务完成时间情况2从实验结果可以看出,本章提出的基于改进量子蚁群算法的任务调度机制,能够有效减少任务完成时间,在相同的数据文件大小下与Spark默认任务调度机制和RBA算法相比在任务完成时间上更有优势,与Spark默认任务调度机制相比平均可以减少21.2%,与现有的RBA算法相比平均减少10.9%。当任务数据文件大小在0.5G左右时,本章机制较Spark默认任务调度机制在任务完成时间上仅减少14.5%,而当任务数据文件大小增加到2G时,可以减少26.3%的任务完成时间。所以,随着任务数据文件大小的增加,Spark默认任务调度机制的任务完成时间增加显著,是由于当任务数据文件较大时数据在不同节点上分布的不均衡性更加明显,而本章所提出的基于改进量子蚁群算法的任务调度机制的任务完成时间并未大幅度增加。综上所述,本章提出的基于改进量子蚁群算法的任务调度机制综合
本文编号:2957698
【文章来源】:重庆邮电大学重庆市
【文章页数】:76 页
【学位级别】:硕士
【部分图文】:
随数据文件大小变化的任务完成时间情况1并统计上述多次仿真实验中各算法的最优解、最差解、采用最优解和最差解之间的极差R来表示其波动性,以及其标准差σ来体现各算法解的稳定性,如表
重庆邮电大学硕士学位论文第3章基于量子蚁群算法的任务调度机制33从实验结果可以看出,本文提出的改进量子蚁群算法与ACO和QACO算法相比,可以进一步寻找更优的分配方案,实现任务完成时间的优化。从上述图表中可以看出,无论是多次仿真结果的均值,还是其在多次仿真实验中取得的最优解,本文提出的改进量子蚁群算法在解方案的质量上都略优于ACO算法和QACO算法,在总体任务完成时间方面,本文提出的改进量子蚁群算法相较于ACO算法缩短15.61%,相较于QACO算法缩短1.06%。取20次重复实验中各算法解的极差R和标准差进行分析,可以发现在数据文件大小不同的情况下,本章提出的改进量子蚁群算法上述两项指标都低于ACO算法和QACO算法,故改进量子蚁群算法寻找到的解相较于ACO算法和QACO算法来说都较为稳定,在最优解附近波动的范围校随机选取一次仿真实验的过程,针对改进量子蚁群算法、ACO算法、QACO算法的收敛过程,绘制包含其迭代轮次和对应的最优解值的比较图,如图3.4所示。其中图3.4(a)包括全部1000次迭代轮次,而由于算法初期收敛速度较快,为了能更清晰地进行展示,选取算法初期的前60轮迭代情况展示在图3.4(b)。(a)(b)图3.4随着迭代轮次变化的收敛情况图3.4描述了三种算法的当前最优解随迭代次数增加而变化的趋势,从图中可以看出在算法初期,虽然ACO算法的收敛速度很快,但是一段时间之后该算法出现早熟现象,陷入停滞状态并无法继续进行全局搜索,最终陷入局部最优解。而本文提出的改进量子蚁群算法由于采用灾变作为种群进化后期的扰动因素,并对量子信息素概率幅上下限进行了控制,从而一直保持种群进行全局搜索的能力,使算法结果随着迭代轮次的增加呈波动下降的趋势,最终搜索到相较于ACO算法和QACO算法更优的解。
重庆邮电大学硕士学位论文第3章基于量子蚁群算法的任务调度机制34再验证本章设计的基于改进量子蚁群算法的任务调度机制Spark默认任务调度机制、RBA算法[17]比较,在任务完成时间和内存溢出次数上是否得到了优化。针对不同大小的数据文件,采用和上述实验相同的方法,将本章提出的基于改进量子蚁群算法的任务调度机制与Spark默认任务调度机制、RBA算法进行比较,仿真测试其任务完成时间。本章提出的量子蚁群算法取迭代轮次1000次,个体数为120,为了保证实验的公平性,每组实验执行20次,取其平均值作为最终结果,绘制成柱状图如图3.5所示。图3.5随数据文件大小变化的任务完成时间情况2从实验结果可以看出,本章提出的基于改进量子蚁群算法的任务调度机制,能够有效减少任务完成时间,在相同的数据文件大小下与Spark默认任务调度机制和RBA算法相比在任务完成时间上更有优势,与Spark默认任务调度机制相比平均可以减少21.2%,与现有的RBA算法相比平均减少10.9%。当任务数据文件大小在0.5G左右时,本章机制较Spark默认任务调度机制在任务完成时间上仅减少14.5%,而当任务数据文件大小增加到2G时,可以减少26.3%的任务完成时间。所以,随着任务数据文件大小的增加,Spark默认任务调度机制的任务完成时间增加显著,是由于当任务数据文件较大时数据在不同节点上分布的不均衡性更加明显,而本章所提出的基于改进量子蚁群算法的任务调度机制的任务完成时间并未大幅度增加。综上所述,本章提出的基于改进量子蚁群算法的任务调度机制综合
本文编号:2957698
本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/2957698.html
最近更新
教材专著