论文部分内容阅读
大数据是当前的热门话题,分析引擎如Spark或Hadoop是发掘数据价值的关键。为满足工业界和学术界的不同需求,大数据分析引擎已发展成一个多样化的生态系统。无论这些分析引擎如何不同,它们都有一个共同的特点:即都有一组性能攸关的配置参数需要用户配置。参数如何配置主要面临四方面的挑战:(1)配置参数数量多且配置范围大,最优配置的搜索空间巨大;(2)大数据应用程序多样化,不同的程序需要不同的参数配置;(3)数据大小对不同分析引擎最优配置的影响程度是不一样的;(4)集群硬件特征改变需要调整系统的参数配置。这使得大数据分析引擎采用默认配置和进行手工配置均会导致系统运行过慢甚至出错。所以,大数据分析引擎关于配置参数的自动优化关键技术研究具有重要的学术意义与应用价值。目前,主要存在三种配置参数自动优化方法:基于规则的方法、基于模型的方法和自适应搜索的方法。其中,基于规则的方法和自适应搜索的方法均没有考虑参数之间复杂的相互依赖关系,而且优化的参数数量非常有限,限制了性能的优化空间。基于模型的方法主要包括基于分析模型的方法、基于统计推理模型的方法和基于机器学习的方法。而前面两种建模方法都基于过于简单的线性假设,它们构建的模型准确性偏低,导致优化结果离最优配置相差甚远。所以,基于机器学习的方法应运而生。与其它方法相比,该方法不基于任何线性假设,构建的性能模型比较准确。由此,它更适合应用于大数据分析引擎的自动调优中。然而,基于机器学习的方法在大数据分析引擎自动调优中应用还不够成熟,面临模型精度还不够高,输入数据大小尚不能感知,时间开销过大等诸多具有挑战性的问题。针对这些问题,本文将从三个方面展开研究:基于磁盘的大数据分析引擎自动调优、基于内存的大数据分析引擎自动调优和大数据分析引擎在线自动优化。首先,针对磁盘大数据分析引擎,提出基于集成学习模型的自动调优方法RFHOC。在已有的针对磁盘大数据分析引擎自动调优方法中,基于分析模型和支持向量机的方法构建的性能模型准确性均不够高。针对该问题,RFHOC基于随机森林算法构建了准确的性能模型,实现了Hadoop程序性能的自动优化。具体而言,RFHOC首先分别为MapReduce工作流中的map和reduce阶段构建基于随机森林算法的性能模型。然后,基于构建的性能模型,RFHOC采用遗传算法在Hadoop配置参数空间自动搜索最优配置。实验结果表明,RFHOC构建的性能模型精度明显高于分析模型的精度,map阶段只有4.8%的相对误差,reduce阶段只有8.7%的精度。通过对二十五组HiBench程序-输入数据的性能加速评测,相比于基于分析模型的方法,RFHOC实现了平均2.11倍的性能加速比,最高7.4倍的性能加速比。而且在数据增长的情况下,RFHOC实现了更高的性能加速比。其次,针对内存大数据分析引擎,提出具有数据感知的集成学习参数自动配置方法DAC。经研究发现,与磁盘大数据分析引擎相比,内存大数据分析引擎最优参数配置对输入数据的大小更为敏感。针对这个问题,DAC在构建性能模型和搜索最优参数配置时考虑了输入数据大小对参数配置的影响。具体而言,DAC构建的性能模型不仅将系统自身的配置参数作为模型的输入参数,还将数据大小也作为性能模型的参数共同构建具有数据大小感知的性能模型。所以,该性能模型在数据大小变化时仍然能够精确地预测给定参数配置的性能。由此,DAC在数据大小感知的性能模型基础上,能够针对不同的数据大小使用遗传算法在配置参数空间中自动搜索相应的最优配置。在验证DAC的优化效果时使用了 6组Spark基准测试程序,每组均包含5个输入数据集。实验结果表明,与默认配置相比,DAC对三十组不同的程序输入对实现了平均30.4倍,最高89倍的性能加速比。最后,针对大数据分析引擎的在线优化,提出一种在线增量学习并自动配置的方法OSC。针对已有的离线自动优化方法在数据增大时时间开销过大的问题,在OSC中研究了在线的优化机制和策略,这些技术使得OSC能够在程序运行时确定大数据分析引擎的最优参数配置。具体而言,OSC研究并提出了三种关键技术。首先,它采用集成学习技术为应用程序构建精确的性能模型。第二,OSC提出了一种增量建模方法,该方法很好地权衡了性能模型精度与建模的时间开销之间的关系。第三,OSC量化了配置参数对于性能的重要性程度和配置参数之间的相互作用强度,以加速对最优参数配置的搜索过程。OSC在Hadoop/MapReduce基础上进行了实现,通过在线优化二十五组HiBench程序-输入数据的实验评测了OSC的优化效果。实验结果表明,与最近提出的MROnline相比,OSC可以实现平均1.6倍,最高达2.2倍的性能加速比。此外,OSC还具有随着输入数据增加优化效果越好的特点,该特点非常适合于大数据分析的应用场景。