论文部分内容阅读
随着云计算、移动计算等技术的快速发展和广泛应用,互联网所产生的数据量正在以指数级的速度增长。面对海量数据的处理和挖掘需求,业界逐渐发展出了众多大数据处理技术及相关开发框架。为了应对不同的使用场景,Spark大数据处理框架提供了上百个配置项。由于Spark的配置参数对应用的运行性能有着显著的影响,因此对Spark配置进行调优是一项十分必要的工作。为了提高Spark框架的运行效率,国内外研究者在多个方向做出了努力。其中自动化配置参数优化方法的研究尚处于探索阶段。现有的自动化优化方法对成本的考虑较为不足,难以应用于实际工作场景,而且其优化效果也有着较大的提升空间。针对上述问题,本文给出一种基于机器学习的性能建模的方法,预测目标应用在不同的配置参数下的执行时间,并在此基础上实现配置参数的优化任务。该方法的主要思路为:建立应用与模型数据库,保存多种应用信息及其机器学习模型;对于需要预测在各种配置下执行时间的目标应用,首先从数据库中查找并提取关键信息,用以指导目标应用样本数据的获取;随后基于机器学习算法对样本数据进行训练以构建目标应用的性能预测模型。本文的主要工作包括:(1)应用执行状态监控。将目标应用在特定运行环境执行,监控运行时各个时间节点的资源消耗、数据流向、Shuffle过程等指标,获取详细的记录报告,结合应用特征的表示方法,提取出代表应用的特征变量。(2)模型知识提取方法。基于统计学习方法建立的模型中描述了各个特征值与结果值的相关关系,即各个特征及其组合对最终运行时间的影响幅度,可以将这些信息提取出用以指导后续的样本采集过程。(3)设计并实现了性能建模与优化系统。实现了从数据采集与提取、特征的选择和预处理、模型的训练和验证以及持久化的全过程。基于构建的性能预测模型并使用参数搜索算法,经过多次迭代调用预测模型计算出目标应用程序的推荐配置参数值。本文通过多节点集群上的模拟实验进行了测试,对性能建模方案与配置优化方法进行了验证。实验结果表明,本文的方案实现了自动化配置调整与优化的功能,在不需要大量人力成本的前提下提高了系统资源的利用率,完成了Spark配置优化任务的需求。通过实验验证,相较于传统的几种优化方法,本文提出的性能建模与配置优化方法有10%到25%的性能提升。