一种基于机器学习的Hadoop参数自动调优方法及系统技术方案

技术编号:14113680 阅读:220 留言:0更新日期:2016-12-07 11:04
本发明专利技术属于大数据处理技术领域,涉及一种基于机器学习的Hadoop参数的自动调优方法及系统。本发明专利技术根据不同应用程序的资源消耗特征聚类分组,并针对不同组应用建立不同的性能模型,自动得到对不同类应用影响较大的不同参数,并给出定量参数建议值。系统包括离线模块和在线模块,离线模块包括Hadoop数据收集器、聚类器和性能模型构建子模块;在线模块包括作业管理器、优化器、资源消耗特征匹配器和作业探查器。本发明专利技术有效解决了现有的基于经验规律的方法对用户经验的高依赖问题和定性参数建议的限制问题;同时本发明专利技术将参数优化系统和Hadoop系统分离,降低系统耦合度,减少人工开销,避免人为误判,并且便于系统扩展与维护。

【技术实现步骤摘要】

本专利技术属于大数据处理
,更具体而言,涉及一种基于机器学习的Hadoop参数的自动调优方法及系统。
技术介绍
Hadoop作为应用广泛的大型数据并行处理框架Mapreduce的一种开源实现,具有良好的扩展性和容错性。用户能够使用Hadoop轻松扩展应用程序,但是必须为特定应用配置参数,不同的参数配置会对系统的性能产生很大的影响。Hadoop任务的性能优化是一个多维的优化问题,影响因素主要有数据集规模大小、机器硬件的配置、作业对资源利用特征,以及不同的调度算法。首先,就一套集群而言,不同集群参数设置存在很大差别,因此每个Hadoop系统需要根据所处集群自身的特点来配置以优化性能。其次,各参数间的关系非常复杂,有的参数可能与一个或多个参数相互影响。参数间存在相互制约或依赖关系,设置不合理可能会导致资源竞争,整个系统的整体性能降低,所以使配置参数间的相互制约关系达到平衡非常重要;此外,不同应用任务对执行环境的要求不同,需要对系统进行相应配置以匹配任务需要来提高整体性能。传统的基于经验规律的调优方法是Hadoop用户通过大量实验和对系统本身的分析总结对某类Hadoop作业性能影响较大的参数,并在具体应用实践中调节这些参数值。这种方法需要用户对Hadoop系统有比较深入了解和大量实战经验,并且会因用户不同而产生截然不同的效果。每一次参数调整需要进行多次测试,需要消耗大量的硬件资源和时间。如Vaidya(详见:Vaidya.[Online].Availab1e:http://Hadoop.apache.org/Mapreduce/doc s/r0.21.0/vaidya.Html)作为基于规则的Mapreduce作业性能诊断工具,通过解析刚运行后的作业配置文件中的参数、统计信息及JobHistory日志等信息并作用于事先定义好的规则上来发现作业中的性能问题,并给出定性而不是定量的建议。hivnath等提出了一种基于代码重写的调优方法,通过修改Hadoop本身的代码,将参数优化的模块加入Hadoop源码中并借鉴数据库中的查询优化思想来实现Hadoop参数自动调优的目标(见论文:Babu S.Towards Automatic Optimization of Mapreduce Programs.in:Proceedings of the 1st ACM symposium on Cloud computing(SoCC'10).ACM,2010.137-142.)。但是它不能根据应用程序自身各异的特点以及系统的资源不同的情况来进行针对性的调节优化。其次将配置参数的工作交给Hadoop系统来做,会使得Hadoop底层源代码变得更加复杂和难以维护。K.Kambatla提出基于资源消耗特征的调优方法(见论文:Kambatla K,Pathak A,Pucha H.Towards optimizing Hadoop provisioning in the cloud.in:HotCloud Workshop in conjunction with USENIX Annual Technical Conference.USENIX Association,2009.),通过将当前的作业的资源消耗特征与数据库中其他应用的资源消耗特征分析与比较,找到最相似的一个,并读取对应的最优参数配置方案,作为当前作业的参数配置方法,从而实现为新的Hadoop作业自动配置参数。它能使作业在获得最好性能的前提下,尽量减少程序消耗。该方法的关键就是针对不同Hadoop典型应用收集对应的资源消耗特征,并通过不断修改配置参数找到相应Mapreduce作业对应的最优参数配置方案,然后根据将每种Hadoop应用和其对应的资源消耗特征、最优参数配置方案保存到数据库中。这种调优方式类似于基于经验规律的方式,只是这里的经验是指存在数据库中的那些应用。它的优点是比较容易实现,它的缺点是主要针对map.tasks.maximum与reduce.tasks.maximum两个参数的设置,优化的参数很少,导致优化效果有限;并且为了找到每种应用的最优参数配置方案,需要大量实验测试,浪费了大量的系统硬件资源和时间。
技术实现思路
针对现有Hadoop调优方法的以上不足,本专利技术提供一个基于机器学习的Hadoop参数自动调优方法及系统,目的在于根据不同应用程序的资源消耗特征聚类分组,并针对不同组应用建立不同的性能模型,自动得到对不同类应用影响较大的不同参数,并给出定量参数建议值,有效解决现有的基于经验规律的方法对用户经验的高依赖问题和定性参数建议的限制问题;解决现有的基于资源消耗特征的方法优化参数少,优化效果有限的问题;同时本专利技术将参数优化系统和Hadoop系统分离,降低系统耦合度。本专利技术提供的一种基于机器学习的Hadoop参数自动调优方法,包括离线过程和在线过程,其中,离线过程包括下述步骤:S1.收集当前集群中运行的历史作业的执行时间、输入数据集规模、Mapreduce的参数配置和各类资源消耗的时间序列信息;S2.将收集的历史作业的各类资源消耗的时间序列信息进行归一化预处理,然后构建资源消耗特征向量;S3.计算不同作业的资源消耗特征向量之间距离,用于衡量不同作业的相似度,并将作业聚类分组,使得资源消耗特征相似的作业分为一组;S4.根据聚类结果,利用每组历史作业的配置参数、输入数据规模和执行时间,分组构建作业执行时间训练集;S5.针对每组作业,分别采用逐步回归方法选择最佳预测因子,即选择与作业执行时间强相关的因子;S6.针对每组作业,分别利用逐步回归分析的结果进行SVM回归预测分析,选择合适核函数,构建SVM性能模型;所述在线过程包括下述步骤:S7.针对新提交的作业,采用默认参数配置和输入数据集的一部分,在聚类集群中运行该作业,收集各类资源消耗的时间序列信息,并按照步骤S2中方法构建资源消耗特征向量;S8.将新提交作业的资源消耗特征向量与步骤S3聚类结果中的每类聚类中心进行距离匹配,然后利用匹配的作业类对应的性能模型,预测不同参数配置和输入数据集规模下的执行时间,作为参数寻优的搜索空间;S9.利用搜索算法搜索最优参数配置,并输出;S10.利用步骤S9得到的最优参数配置方案,指定输入数据集,在当前集群下运行新提交作业。作为上述技术方案的改进,所述步骤S3中衡量不同作业相似度所采用的距离计算公式,使相同作业间相似度比不同作业间相似度高,优选为余弦距离公式。作为上述技术方案的进一步改进,所述步骤S3中聚类分组所采用的聚类算法为无监督聚类算法,原则是:使得资源特征最相似的作业自动地聚类成一组,优选为K-means算法。作为上述技术方案的更进一步改进,所述步骤S6中,利用交叉验证法评估所述SVM性能模型的预测准确性。作为上述技术方案的再进一步改进,所述步骤S9中搜索算法的选择原则是:快速在搜索空间中,找到使得作业执行时间最短的最优参数配置;具体可以将作业在不同参数配置下预测执行时间从小到大排序,取前面几个预测执行时间对应的参数配置,求每个参数的平均值作为最优参数值。本专利技术所提供的一种基于机器学习的Hadoop参数自动调优系统,包括离线模块和在线模块,其中:离本文档来自技高网
...
一种基于机器学习的Hadoop参数自动调优方法及系统

【技术保护点】
一种基于机器学习的Hadoop参数自动调优方法,包括离线过程和在线过程,其中,离线过程包括下述步骤:S1.收集当前集群中运行的历史作业的执行时间、输入数据集规模、Mapreduce的参数配置和各类资源消耗的时间序列信息;S2.将收集的历史作业的各类资源消耗的时间序列信息进行归一化预处理,然后构建资源消耗特征向量;S3.计算不同作业的资源消耗特征向量之间距离,用于衡量不同作业的相似度,并将作业聚类分组,使得资源消耗特征相似的作业分为一组;S4.根据聚类结果,利用每组历史作业的配置参数、输入数据规模和执行时间,分组构建作业执行时间训练集;S5.针对每组作业,分别采用逐步回归方法选择最佳预测因子,即选择与作业执行时间强相关的因子;S6.针对每组作业,分别利用逐步回归分析的结果进行SVM回归预测分析,选择合适核函数,构建SVM性能模型;所述在线过程包括下述步骤:S7.针对新提交的作业,采用默认参数配置和输入数据集的一部分,在聚类集群中运行该作业,收集各类资源消耗的时间序列信息,并按照步骤S2中方法构建资源消耗特征向量;S8.将新提交作业的资源消耗特征向量与步骤S3聚类结果中的每类聚类中心进行距离匹配,然后利用匹配的作业类对应的性能模型,预测不同参数配置和输入数据集规模下的执行时间,作为参数寻优的搜索空间;S9.利用搜索算法搜索最优参数配置,并输出;S10.利用步骤S9得到的最优参数配置方案,指定输入数据集,在当前集群中运行新提交作业。...

【技术特征摘要】
1.一种基于机器学习的Hadoop参数自动调优方法,包括离线过程和在线过程,其中,离线过程包括下述步骤:S1.收集当前集群中运行的历史作业的执行时间、输入数据集规模、Mapreduce的参数配置和各类资源消耗的时间序列信息;S2.将收集的历史作业的各类资源消耗的时间序列信息进行归一化预处理,然后构建资源消耗特征向量;S3.计算不同作业的资源消耗特征向量之间距离,用于衡量不同作业的相似度,并将作业聚类分组,使得资源消耗特征相似的作业分为一组;S4.根据聚类结果,利用每组历史作业的配置参数、输入数据规模和执行时间,分组构建作业执行时间训练集;S5.针对每组作业,分别采用逐步回归方法选择最佳预测因子,即选择与作业执行时间强相关的因子;S6.针对每组作业,分别利用逐步回归分析的结果进行SVM回归预测分析,选择合适核函数,构建SVM性能模型;所述在线过程包括下述步骤:S7.针对新提交的作业,采用默认参数配置和输入数据集的一部分,在聚类集群中运行该作业,收集各类资源消耗的时间序列信息,并按照步骤S2中方法构建资源消耗特征向量;S8.将新提交作业的资源消耗特征向量与步骤S3聚类结果中的每类聚类中心进行距离匹配,然后利用匹配的作业类对应的性能模型,预测不同参数配置和输入数据集规模下的执行时间,作为参数寻优的搜索空间;S9.利用搜索算法搜索最优参数配置,并输出;S10.利用步骤S9得到的最优参数配置方案,指定输入数据集,在当前集群中运行新提交作业。2.根据权利要求1所述的一种基于机器学习的Hadoop参数自动调优方法,其特征在于,所述步骤S3中衡量不同作业相似度所采用的距离计算公式,使相同作业间相似度比不同作业间相似度高。3.根据权利要求1或2所述的一种基于机器学习的Hadoop参数自动调优方法,其特征在于,所述步骤S3中衡量不同作业相似度所采用的距离计算公式为余弦距离公式。4.根据权利要求1或2所述的一种基于机器学习的Hadoop参数自动调优方法,其特征在于,所述步骤S3中聚类分组所采用的聚类算法为无监督聚类算法,原则是:使得资源特征最相似的作业自动地聚类成一组。5.根据权利要求1或2所述的一种基于机器学习的Hadoop参数自动调优方法,其特征在于,所述步骤S3中聚类分组采用K-means算法。6.根据权利要求1或2所述的一种基于机器学习的Hadoop参数自动调优方法...

【专利技术属性】
技术研发人员:施展冯丹于瑞丽童颖王子毅彭亚妹
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1