一种数据感知的Spark配置参数自动优化方法技术

技术编号:15329125 阅读:91 留言:0更新日期:2017-05-16 12:52
本发明专利技术属于电子信息、大数据、云计算等技术领域,特别涉及本一种数据感知的Spark配置参数自动优化方法,通过事先确定Spark应用程序以及影响Spark性能的参数,随机配置参数得到训练集,将训练集通过随机森林算法构建性能模型,通过遗传算法搜索出最优配置参数。本发明专利技术不要求用户理解Spark运行机制、参数意义作用和取值范围,以及应用程序特点和输入集的情况下,能为用户找到运行在特定集群环境下特定应用程序的最优配置参数,较之以前的参数配置方法更简单快捷本发明专利技术使用的随机森林算法结合了机器学习和统计推理的长处,能够使用较少训练集,达到较高精度。

A method for automatic optimization of data aware Spark configuration parameters

The invention belongs to the technical field of electronic information, big data, cloud computing, automatic optimization of Spark configuration parameters in particular to the perception of a data, by determining the Spark applications and the effects of parameters of Spark performance in advance, random configuration parameters training set, the training set by random forest algorithm to build the performance model by genetic the algorithm searches the optimal configuration parameters. The invention does not require the user to understand the Spark operating mechanism, function and range of parameters, and the application and characteristics of the input set, users can find the optimal operation in the specific configuration parameters for application specific cluster environment, random forest algorithm parameter configuration method is more simple and efficient than previous invention in combination machine learning and statistical reasoning strengths, can use less of the training set, achieve a high accuracy.

【技术实现步骤摘要】
一种数据感知的Spark配置参数自动优化方法
本专利技术属于电子信息、大数据、云计算等
,特别涉及一种数据感知的Spark配置参数自动优化方法。
技术介绍
Spark是UCBerkeleyAMPlab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce通用并行框架。它发展迅速,仅用了短短五年时间,就成为Apache基金的顶级项目。由于Spark具有将中间结果存储在内存中的特点,Spark运行迭代和交互式程序比传统的磁盘计算框架Hadoop提高了10倍。由于Spark在大数据分析领域具有重要地位,根据Typesafe公司的调查,2015年已有超过500家企业使用Spark。配置参数优化一直是大数据系统的研究热点之一,由于配置参数众多(多于100个),性能受配置参数影响很大,应用程序具有不同特点。因此使用默认配置远未达到最佳性能。Spark是一种新兴的大数据内存计算框架,由于Spark具有“内存计算”的特性,集群中的所有资源:CPU、网络带宽、内存,都会成为制约Spark程序的瓶颈。而不同的Spark应用程序又具有不同特点,比如Kmeans指令局部性好但数据局部性差,PageRank的shuffle和迭代选择都比KMeans多,WordCount不包含迭代等等。本专利技术要解决的问题是对特定的集群环境、输入数据集和应用程序,为自动Spark找到最优的配置参数。基于随机森林的Hadoop参数自动优化方法RFHOC(ARandom-ForestApproachtoAuto-TuningHadoop’sConfiguration,简称RFHOC)是一种针对运行在一个给定集群上的应用程序的配置参数优化方法,主要分为三个步骤:1.性能测试2.构建性能模型3.迭代搜索最优配置当用户第一次运行一个Hadoop应用程序时,RFHOCworkloadprofiler收集运行时Hadoop的配置参数和MapReduce阶段的执行时间。随后,不同阶段的执行时间和对应的配置参数将作为随机森林算法的输入用于构建性能预测模型。RFHOC为map和reduce阶段分别构建回归模型用于预测各个阶段的性能。首先每个阶段要产生一个训练集S,S的每一行为向量vj,vj包含了每次执行时间和对应的Hadoop配置参数值。建好性能模型后,RFHOC运用遗传算法搜索Hadoop最优参数。遗传算法使用随机森林模型预测的性能和对应的配置作为输入做全局搜索。Map和reduce阶段的执行时间相加为程序运行的总时间,也是遗传算法的适应值。现有技术是手动配置参数和自动配置参数。手动配置参数方法弊端在于太耗时,而且要求用户对Spark的运行机制、参数的意义,作用和取值范围具有较深的了解。用户需要手动增大或减少Spark参数值,然后配置Spark,运行应用程序,找到使执行时间最短的参数值。由于不同集群环境、不同应用程序、和不同输入数据集的最优配置参数不同,手动配置参数方法是一个耗时、枯燥的工作。现有的自动配置参数方法缺点在于性能模型精度低、建模成本高。有些方法用人工神经网络(ArtificialNeuralNetwork)、支持向量机(SupportVectorMachine)建模,但是若要达到较高精度(10%以内),需要使用很庞大的训练集。
技术实现思路
基于上述情况,有必要提供了一种数据感知的Spark配置参数自动优化方法。一种数据感知的Spark配置参数自动优化方法,包括如下步骤:收集数据;所述收集数据具体包括:选定Spark应用程序,进一步确定上述应用程序中影响Spark性能的参数,确定上述参数的取值范围;在取值范围内随机生成参数,并生成配置文件配置Spark,配置后运行应用程序并收集数据;所述数据包括但不限于:Spark运行时间、输入数据集、配置参数值;构建性能模型;将收集的Spark运行时间、输入数据集、配置参数值数据构成横向量,多个向量构成训练集,通过随机森林算法对上述训练集进行建模;搜索最优配置参数;使用构建好的性能模型,通过遗传算法搜索最优配置参数。进一步的,在所述搜索最优配置参数步骤之后还包括一验证步骤,所述验证步骤为将搜索到的最优配置参数进行配置Spark,并运行验证执行时间是否为最短。更进一步的,在收集数据步骤中所述随机生成参数为:假设参数s取值范围是[a,b],在该取值范围内统一、均匀、随机地取值c,a≦c≦b,则产生一条记录“s/tc”(/t是一个制表符),按照这个方法,生成其他配置参数。作为一种改进,所述通过随机森林算法对上述训练集进行建模具体包括如下步骤:随机森林算法从给定的训练集通过多次随机的可重复的采样得到多个bootstrap数据集;对每个bootstrap数据集构造一棵决策树,构造是通过迭代的将数据点分到左右两个子集中实现的,这个分割过程是一个搜索分割函数的参数空间以寻求最大信息增量意义下最佳参数的过程;在每个叶节点处通过统计训练集中达到此叶节点的分类标签的直方图经验的估计此叶节点上的类分布;迭代训练过程一直执行到用户设定的最大树深度或者直到不能通过继续分割获取更大的信息增益为止;在随机森林算法中,执行时间作为因变量,输入集和配置参数作为自变量,还需要确定ntree和mtry值,ntree值是随机森林中建立的决策树数量,mtry值是决策树在每一个分裂节点处样本预测器的个数。作为进一步改进,所述通过遗传算法搜索最优配置参数具体为:把一组向量{c1,…,cm}设为初始配置参数值输入性能模型,模型输出执行时间t1,再变化初始值,输入性能模型,模型输出执行时间t2,t2与t1做比较,时间较短所对应的配置参数作为最优配置,再重复以上步骤,直至找到执行时间最短的配置。具体的,所述随机森林算法如下所示:输入:训练集S,引导函数F,整数ntree(bootstrap样本数)1.fori=1tontree{2.S’=从S中抽取bootstrap样本(独立同分布样本,有放回抽取)3.Ci=F(S’)4.}5.输出:聚合C*。本专利技术提供了一种数据感知的Spark配置参数自动优化方法,通过事先确定Spark应用程序以及影响Spark性能的参数,随机配置参数得到训练集,将训练集通过随机森林算法构建性能模型,通过遗传算法搜索出最优配置参数。本专利技术不要求用户理解Spark运行机制、参数意义作用和取值范围,以及应用程序特点和输入集的情况下,能为用户找到运行在特定集群环境下特定应用程序的最优配置参数,较之以前的参数配置方法更简单快捷本专利技术使用的随机森林算法结合了机器学习和统计推理的长处,能够使用较少训练集,达到较高精度。附图说明图1为本专利技术一种数据感知的Spark配置参数自动优化方法整体流程示意图;图2为本专利技术一种数据感知的Spark配置参数自动优化方法中遗传算法示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清晰,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1-2所示,一种数据感知的Spark配置参数自动优化方法,包括如下三大步骤:1)收集数据;所述收集数据包括四个小步骤,如下所示:(1)从Spark所有参数中找到影响性能的参数;(2本文档来自技高网
...
一种数据感知的Spark配置参数自动优化方法

【技术保护点】
一种数据感知的Spark配置参数自动优化方法,其特征在于,包括如下步骤:收集数据;所述收集数据具体包括:选定Spark应用程序,进一步确定上述应用程序中影响Spark性能的参数,确定上述参数的取值范围;在取值范围内随机生成参数,并生成配置文件配置Spark,配置后运行应用程序并收集数据;所述数据包括但不限于:Spark运行时间、输入数据集、配置参数值;构建性能模型;将收集的Spark运行时间、输入数据集、配置参数值数据构成横向量,多个向量构成训练集,通过随机森林算法对上述训练集进行建模;搜索最优配置参数;使用构建好的性能模型,通过遗传算法搜索最优配置参数。

【技术特征摘要】
1.一种数据感知的Spark配置参数自动优化方法,其特征在于,包括如下步骤:收集数据;所述收集数据具体包括:选定Spark应用程序,进一步确定上述应用程序中影响Spark性能的参数,确定上述参数的取值范围;在取值范围内随机生成参数,并生成配置文件配置Spark,配置后运行应用程序并收集数据;所述数据包括但不限于:Spark运行时间、输入数据集、配置参数值;构建性能模型;将收集的Spark运行时间、输入数据集、配置参数值数据构成横向量,多个向量构成训练集,通过随机森林算法对上述训练集进行建模;搜索最优配置参数;使用构建好的性能模型,通过遗传算法搜索最优配置参数。2.如权利要求1所述的数据感知的Spark配置参数自动优化方法,其特征在于,在所述搜索最优配置参数步骤之后还包括一验证步骤,所述验证步骤为将搜索到的最优配置参数进行配置Spark,并运行验证执行时间是否为最短。3.如权利要求2所述的数据感知的Spark配置参数自动优化方法,其特征在于,在收集数据中所述随机生成参数步骤为:假设参数s取值范围是[a,b],在该取值范围内统一、均匀、随机地取值c,a≦c≦b,则产生一条记录“s/tc”(/t是一个制表符),按照这个方法,生成其他配置参数。4.如权利要求3所述的数据感知的Spark配置参数自动优化方法,其特征在于,所述通过随机森林算法对上述训练集进行建模具体包括如下步骤:随机森林算法从给定的训练集通过多次随机的可重复的采样得到多个bootstrap数据集;对每个bootstra...

【专利技术属性】
技术研发人员:罗妮喻之斌贝振东姜春涛须成忠熊文
申请(专利权)人:深圳先进技术研究院
类型:发明
国别省市:广东,44

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

1