一种融合系统语义的大数据系统参数自动优化方法

文档序号:26139600发布日期:2021-08-03 14:23阅读:81来源:国知局
一种融合系统语义的大数据系统参数自动优化方法
本发明涉及大数据系统软件领域,尤其涉及一种融合系统语义的大数据系统参数自动优化方法。
背景技术
:大数据系统软件作为一类典型且重要的领域系统软件,支撑着经济、社会等众多领域行业的大数据应用,具有很高的研究意义和应用价值。目前,市场上流行着各种大数据系统软件,包括以apachehadoop、apachespark为代表的批处理计算系统、以apacheflink、apachestorm为代表的流处理计算系统,涵盖了不同的大数据应用场景,如sql查询、图计算、机器学习等。面对不同的应用场景和数据规模,大数据系统的计算作业性能往往存在很大提升空间。而参数调优是优化大数据计算作业性能的有效方法。然而,大数据系统参数数量繁多且表征的底层系统机理复杂,错综复杂的参数对大数据计算作业性能有不同的影响,参数之间也存在相互关联。这使得对大数据系统进行参数调优存在复杂度高、难度大的问题。一方面,对于普通程序员而言,学习大数据系统底层原理的成本高且手工调优难度较大;另一方面,对于专业程序员而言,也需要根据反馈不断调试,工作枯燥且耗时,导致专家资源紧缺且人工成本高。现有的大数据系统参数自动优化方法包括基于成本建模、基于最优化搜索和基于机器学习模型的参数自动优化方法。大数据系统参数自动优化问题可以转化为最优参数搜索问题,三类方法是通过不同的建模方法指导参数搜索过程,从而在参数空间中找到最优参数配置。基于成本建模方法通过成本估算函数指导参数搜索过程;基于最优化搜索通过在线分析实际运行的作业指导参数搜索过程;基于机器学习模型的方法通过参数-性能预测模型指导参数搜索过程。对于第一类基于成本建模的参数自动优化方法,方法通过对大数据系统内部原理的深入了解,构造统计成本函数来评估参数配置所需要的作业执行成本,从而指导参数调优过程。成本模型主要由三个部分构成:1)对数据进行map、filter等操作所需cpu的计算成本;2)从磁盘读取数据,并导入内存所需的i/o成本;3)执行分布式计算引擎时,各个节点之间数据交换所产生的通信成本。然而,大数据系统的底层原理复杂且系统之间存在差异,导致构造成本模型非常困难且模型的通用性差。第二类基于最优化搜索的参数自动优化方法,主要过程是在实际运行提供的反馈和最优化搜索算法的指导下,推荐不同的参数设置,然后重复执行同一个应用程序或实验,直到找到参数调优的最优解。由于每组参数配置都需要实际作业运行,随着参数空间的增大,大量的作业在线运行非常的耗时,使得该方法效率很低。第三类基于机器学习模型的参数自动优化方法通过收集历史参数配置下的作业执行日志进行学习,建立参数-性能预测模型,然后对不同参数配置进行作业性能预测,得到预测结果最优的参数配置。该方法通常将复杂的系统视为一个整体模型,不关注系统内部详细信息。同时,该方法通过性能模型的预测结果衡量参数配置的优劣,因此模型的预测误差会严重影响最优参数的选择。现有方法在性能优化效果、方法执行效率和通用性方面都存在一定不足,难以满足不同应用场景下大数据系统参数自动优化的实际需求。基于成本建模方法根据大数据系统原理和特定的应用场景进行构建,构造成本模型的复杂度高、应用场景单一、通用性差;基于最优化搜索方法的参数推荐精准度高且应用场景多样化、通用性高,然而在线作业运行让系统处于等待状态,导致参数搜索效率低;基于机器学习模型的方法通过性能预测模型代替复杂的大数据系统,因此参数搜索效率高,但是性能预测模型很难学习真实的参数与性能关系,其预测误差导致最终推荐参数的优化效果差。综上所述,目前缺乏一个同时满足最优参数推荐精准度和参数搜索效率的大数据参数自动优化方法。技术实现要素:发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种高效的、精准的且面向复杂多样的应用场景的大数据系统参数自动优化方法,能够达到参数推荐精准度和参数搜索效率的二者平衡。技术方案:为实现上述发明目的,本发明提出了一种融合系统语义的大数据系统参数自动优化方法,包括如下步骤:(1)读取作业程序并转化为json格式的有向无环图(dag),对所述有向无环图的计算节点、数据传输边和图结构进行特征分析和提取,输出作业特征向量;(2)对输入的数据集进行特征提取,形成数据集特征向量,数据集所述类型包括表数据集、机器学习特征集、图数据集和流数据集;合并作业特征向量和数据集特征向量,作为步骤(3)的输入向量;(3)参数预测模型首先进行模型初始化,再根据输入向量计算损失函数并不断迭代求解目标值,最后累加每个学习器预测结果输入预测参数配置,并将预测参数配置作为初始的参数配置传入步骤(4);(4)根据所述参数配置向大数据系统提交运行作业和数据集,实时采集时序作业日志并导入prometheus时序数据库,监控作业是否运行成功;如果任务执行失败,跳过本次参数配置;(5)作业成功执行结束后,向prometheus查询各个性能指标结果,统计平均值并进行归一化计算;最后,将各性能指标值乘以权重并累加计算综合性能总分,计算结果作为性能反馈传入步骤(6);(6)遗传搜索:将每组参数配置作为个体形成一个种群,然后通过个体选择、交叉与变异进化原理更新参数配置;当个体达到性能目标或者收敛条件,遗传搜索停止;(7)根据系统语义分析参数之间的约束规则,然后通过规则判断新参数配置的有效性;满足约束规则的参数配置作为更新参数配置,重复执行步骤(4)至(7),不满足约束规则的参数配置则丢弃。进一步地,所述步骤(3)中,历史大数据作业和数据集经过特征处理形成特征集d={(xi,yi):i=1,2...,n},式中xi表示影响最优参数配置的特征,yi表示真实的最优参数配置,n表示特征集的向量个数;然后,利用lightgbm在特征集d基础上建立参数预测模型,预测结果作为一个较优的参数搜索起点,加速参数搜索进程。进一步地,所述步骤(5)中,采用多维度作业性能分析方法,从cpu、内存、网络io以及执行效率刻画作业性能,能够准确衡量参数配置的优劣;性能指标权重表示性能指标值在作业综合性能中的占比,能够衡量性能指标在综合性能中的重要性;同时,调整权重值能够灵活定义作业性能目标;在权重设置的基础上,作业综合性能计算方法为式中performance表示作业性能,metricj表示不同性能类型的性能指标,weight表示该指标的权重,m表示性能指标数量。进一步地,所述步骤(6)中,遗传搜索根据参数预测结果,生成较优参数配置作为初始个体;然后综合分析运行结束后的作业性能,根据分析结果选择优秀个体作为父母;最后进行基因交叉和变异,获取优秀子代,即优秀的参数配置。进一步地,所述步骤(7)中,参数配置与大数据系统的底层原理相关,因此可以分析大数据系统语义,归纳总结出参数之间的约束规则:方法针对系统的内存模型、反压机制和并行计算三个方面进行系统语义分析,然后将参数搜索从根部出发遍历参数搜索树的过程,通过参数约束规则进行判断,剪去参数搜索树中的某些枝条,避免一些不必要的遍历过程。本发明的有益效果:本发明所述技术方法能够根据用户设置的性能目标需求和参数及其取值范围,推荐大数据系统的最佳参数配置。本发明通过智能化方法和参数搜索方法的结合,实现大数据系统参数调优过程的自动化和高效化,同时利用大数据系统语义指导参数搜索过程,提升系统自动化参数调优效率。因此本发明能够达到参数推荐精准度和参数调优效率的二者平衡。附图说明图1为本发明的总体流程示意图;图2(a)为本发明在sql作业和tpc-ds数据集上,与现有技术的推荐参数优化效果实验对比图;图2(b)为本发明在sql作业和tpc-ds数据集上,与现有技术的参数搜索效率实验对比图。具体实施方式下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。本发明提出一种融合系统语义的大数据系统参数自动优化方法,解决了现有方法不能同时兼顾参数推荐精准度和参数搜索效率的问题。如图1所示,本发明的完整流程分为参数预选阶段和最优参数搜索阶段。下面以一个sql作业在大数据系统flink上执行并处理100gb表数据集为例,说明本发明的具体的实施方式。参数预选阶段经过作业特征提取、数据集特征提取和参数预测模型三个步骤,预测出较优的参数配置作为参数搜索初始点,具体实施方式如下:作业特征提取步骤对应技术方案步骤(1)。具体实施方式为:将作业程序提交至flinkclient获取json格式的作业dag,然后分别对dag节点中涉及shuffle、数据聚合和迭代计算的操作算子数、然后对dag边信息中涉及数据shuffle的hash/keygroup、broadcast、global数据传输策略的边数、作业dag的图深度、节点数、边数、平均度、路径数和最短路径长度等图结构特征进行统计,最后合并特征值转化为作业特征向量。数据集特征提取步骤对应技术方案步骤(2)。具体实施方式为:将数据集分为表数据集、机器学习特征集、图数据集和流数据集四种类型,并根据数据类型分别进行特征提取。针对表数据集,将sql查询语句转化为ast语法树,然后对ast语法树进行深度遍历搜索,查询join和聚合操作的叶子节点(列名)作为计算列,统计表中计算列的平均基数和方差。最后,合并多个表的平均基数和平均基数方差作为表数据集特征向量;针对机器学习特征集,仅统计数据集大小作为特征;针对图数据集,统计图的节点数、边数、度数、环数、路径数、高度、深度的特征值作为图数据集的特征向量;针对流数据集,启动流数据源并等待2-3分钟数据源处于稳定状态后,然后统计平均每条记录数据大小和每秒记录条数,作为流数据源的特征向量。最后,合并步骤(1)的作业特征向量与数据集特征向量形成向量x,输入步骤(3)中。参数预测模型步骤对应技术方案步骤(3)。具体实施方式为:历史大数据作业和数据集经过特征处理形成特征集d={(xi,yi):i=1,2...,n},其中xi表示影响最优参数配置的特征,yi表示真实的最优参数配置,n表示特征集的向量个数。本发明将特征集的70%作为训练集,30%作为测试集进行交叉验证。lightgbm模型首先确定目标函数,将损失函数设为平方损失,通过贪心策略生成决策树的每个节点,找到最佳树结构。模型每次迭代前计算损失函数样本点的一阶导数和二阶导数,生成新的决策树并计算每个节点的预测值。然后将迭代生成的n棵决策树迭代加入模型中,初始化n棵决策树,平均分配训练样例权重。最后,训练弱分类器,更新权重得到最终分类器,输出预测参数配置。最优参数搜索是本发明所述的技术方案的第二阶段,在参数取值空间进行最优参数搜索,需要重复进行技术方案中所述的第(4)至第(7)步骤,直到作业性能达到目标或者收敛。下面以表1所示的flink参数及其取值范围为例,进行阐述:表1flink系统参数及其含义和取值范围flink系统参数参数含义参数取值范围taskmanager.memory.process.sizetaskmanager总内存大小[1-30g]taskmanager.numberoftaskslotstaskmanager的slot个数[1-20]taskmanager.memory.managed.fraction托管内存占比[0.3-0.8]taskmanager.memory.network.fraction网络缓存占比[0.05-0.2]parallelism.default算子最大并行度[1-100]技术方案步骤(4)和步骤(5)的具体实施方式为:根据参数配置向flink提交大数据作业和数据集,实时采集时序作业日志并导入prometheus时序数据库,监控作业是否运行结束;如果任务执行失败,跳过本次参数配置;任务执行成功,进入步骤(5)。作业成功执行结束后,向prometheus中查询各个性能指标结果,统计平均值并进行归一化计算。本发明选择的性能指标和归一化计算方法如表2所示,其中tm表示flink的任务执行节点taskmanager,基准时间表示flink默认参数配置下的执行时间,执行时间降低目标、最大延时和吞吐量目标均由用户设置。最后,将各性能指标值乘以权重并累加计算综合性能总分,所述作业综合性能总分达到性能目标或者收敛,搜索终止,否则作为性能反馈传入步骤(6)。表2作业性能类型及归一化计算方法技术方案的步骤(6)的具体实施方式为:遗传搜索包含初始化种群、体选择、基因交叉和突变等多个操作。首先利用参数预选模型,生成较优参数配置作为初始个体(预测参数配置)。然后步骤(4)和(5)的结果计算种群中每个个体(每组参数配置)的性能总分,如果达到性能目标,或者收敛条件,则结束进化过程。如果未达到,则通过轮盘选择策略,在当前种群中选取优秀的参数配置作为父母。接着,从当前种群中选择个体,然后根据随机生成的交叉点进行个体两两交叉操作,生成新的个体加入种群。最后,随机选择个体及其染色体位置进行个体基因突变。技术方案的步骤(7)中的具体实施方式为:首先根据系统语义建立参数约束规则,如表3所示。然后对新个体(参数配置)进行先可行性剪枝,判断参数组合是否符合当前所有参数约束规则,如果不合理,则在新种群中删除该个体,替换为目前搜索过程中最优个体。如果参数配置合理,则进行记忆化剪枝,判断该个体是否已搜索过。如果已经搜索过,不需要重新执行作业,直接将历史适应度赋值给新个体。如果未搜索过,新个体(参数配置)传入步骤(4)。表3基于flink系统语义的参数约束规则本发明提出了一种高效的、精准的且面向复杂多样的应用场景的的大数据系统参数自动优化的方法。为测试该方法的实际性能,在相同的flink集群环境,相同的调节参数及其取值范围,采用了tpc-ds基准测试。测试在1g和10g数据规模下,选取groupby和join类型的sql作业,测量了本发明提出的技术方法推荐参数配置下的作业执行时间和参数搜索时间。为了对比参数推荐精准度,同时测量了默认参数配置和基于机器学习模型方法adaboost、dac推荐参数配置的作业执行时间,实际测量结果如图2(a)所示;为了对比参数搜索效率,同时测量了基于最优化搜索的方法gunther和cherrypick的参数搜索时间,实际测量结果如图2(b)所示。在相同的flink集群环境,相同的调节参数及其取值范围,本发明方法推荐参数配置比基于机器学习模型方法的推荐参数配置的作业执行时间短,说明本发明方法的推荐参数优化效果较好;本发明方法比基于最优化搜索的方法的参数搜索时间短,说明本发明方法的执行效率较高。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1