论文部分内容阅读
随着云计算的迅速发展,如何处理和挖掘由社会网络、生物信息学、电子商务和医疗保健等各式应用程序生成的大型数据集已成为一个重要且具有挑战性的问题。为了便于大数据分析,业界涌现出了许多不断发展的框架来执行并行数据处理。大数据处理框架(例如Spark)拥有100多个配置参数,用来控制应用程序的行为,并且往往对应用程序性能有着决定性影响。但通常用户不具备大数据框架的领域知识,能够结合应用程序的特征和框架的特性设置配置参数,往往采用默认配置。因此如何自动优化Spark配置参数,提升应用程序性能,减少时间成本是亟待解决的问题。为了解决这个问题,国内外提出了很多自动化参数优化方法。但是这些现存方法不是忽略了实际场景下的优化成本,就是需要对软件的特定版本进行内部分析,难以投入实际应用,因此本文提出了一种自动化优化配置参数的工具AutoTune。在考虑了实际应用场景下优化时间限制和高维参数搜索空间的前提下,提出了与实际环境受配置影响相同的测试床(Testbed)环境构建方法和广泛覆盖搜索空间的优化算法,从而实现了高效的自动化配置优化。本文具体包含的工作有以下几个方面:(1)分析和定义了Spark框架性能预测与优化问题,对该问题进行数学建模,同时描述了优化方法流程,确定了待优化配置参数空间。(2)设计并实现了一个Testbed构建方法,用来解决在实际应用场景下由于存在优化时间限制,无法进行过多次数搜索或者获取训练样本的问题。通过在小规模,但是足够精确地捕获实际生产环境受配置影响的Testbed环境下,运行缩减了输入数据量的应用,减少单次配置运行时间,从而获得更多的训练样本,提高性能预测模型的准确性。(3)提出一个结合了机器学习算法和搜索算法的迭代式参数优化算法。通过采用探索策略,使用拉丁超立方体采样算法来保证在高维参数搜索空间上的搜索样本的广泛性。通过采用开发策略,使用参数缩减算法不断地减小搜索范围,寻找局部最优解。迭代过程中不断优化随机森林模型,预测不同配置下的性能表现,指导探索和开发过程。通过实验检验本文提出的Testbed构建方法和性能预测与优化算法。实验验证主要包括两部分,首先使用归一化折现累积增益指标比较相同时间下Testbed和实际生产环境下训练得到的机器学习模型的准确性。然后分别使用本文优化算法与其它5种优化方法搜寻最佳配置,比较其优化结果。经过实验证明,优化算法产出的优化配置比默认配置平均有63.70%的性能提升,而且,在使用Testbed的情况下,对于所有优化算法,得到的最佳配置都优于实际生产系统。