一种基于机器学习的Spark集群参数优化方法及系统
未命名
09-22
阅读:58
评论:0
一种基于机器学习的spark集群参数优化方法及系统所属
技术领域:
:1.本发明涉及大数据处理领域,提出了一种基于机器学习算法的spark集群参数自动优化的方法及系统。
背景技术:
::2.spark作为一种应用广泛的分布式大数据计算框架,具有良好的可扩展性和健壮性。相较于同类型的并行计算处理框架hadoop,因为其特有的基于内存计算的特点,而具有了更快的运算速度。用户可以将自定义的计算任务提交到spark集群进行计算并得到相应的计算结果。但在集群启动以及任务提交的过程中,为了尽可能的发挥硬件资源的性能,提高用户的可控性;该计算框架提供了一系列可配置的参数,用户需要对这些参数进行相应的配置,不同的参数配置会对集群的性能产生很大的影响。对于某一特定集群而言,不同的参数配置存在极大的差别,因此需要根据集群节点的硬件情况、执行的任务情况对参数进行调优以达到集群性能的最佳情况。其次,由于可配置的参数数量较大,各个参数之间可能存在相互制约和依赖的关系,设置不合理会导致整个集群无法正常工作。所以,使参数之间的制约和依赖达到平衡同样非常重要。3.在传统的参数调优工作中使用的方法可分为两种,第一是根据工作经验,针对不同的任务,由经验丰富的工作人员给出一个可能的最优参数组合。第二是在任务的实际运作过程中,通过监控集群状体和任务运行情况,分析集群与任务日志,找出集群性能的瓶颈,调整对应参数并迭代上述过程,动态的将集群状态调整到最优情况。4.上述两种方法虽然是集群调参的主流方式,但都存在一些问题。首先,根据经验的调参方法具有很大的不确定性;同时对人的依赖程度十分严重。而对于迭代调参法而言,由于需要实时监控集群状态,并不断的重启集群使参数生效,会消耗相当程度的时间成本和人力成本。针对存在的问题,本发明提出了一种基于机器学习的spark集群的调参方法。该方法针对四种任务类型,使用机器学习算法,自动生成最佳的参数组合方案。可以有效的提高集群性能,并节约各项成本。技术实现要素:5.本发明的目的在于提供一种自动优化spark集群参数的方法,该方法包括以下步骤:6.步骤1:生成默认参数组合并随机生成多种参数组合,针对不同类型的spark任务,使其在不同参数组合的集群中运行;收集参数组合、任务类型、数据规模以及任务运行时间;对数据进行归一化处理得到一组可用于机器学习算法的数据集。7.步骤2:建立决策树模型,对参数进行过滤,保留性能高于默认参数配置的参数组合。8.步骤3:建立深度神经网络模型,将步骤2中性能优于默认配置的参数组合与任务类型、数据规模作为输入;任务的运行时间作为输出。训练回归模型,使模型可以预测某种参数组合和任务规模下,特定类型任务的执行时间。9.步骤4:使用步骤3得到的预测时间与参数组合、数据规模、任务类型等建立q-learning模型,得到当前任务类型和数据规模下可使用的最优参数组合。附图说明10.图1是本发明选取的参数列表。11.图2是本发明的训练流程。12.图3是本发明的优化流程。13.图4是本发明选取的神经网络架构。具体实施方式14.下面结合附图对本发明进行进一步详细的说明:15.1.一种用于自动优化spark集群参数的方法,包括数据采集、参数过滤、性能预测和参数优化四个过程。16.数据采集包括以下步骤:17.步骤1)、随机生成49组随机取值的参数组合以及1组默认取值的参数组合,分别计作pari和pardef。18.步骤2)、使用hibench大数据测试工具,针对四种不同的任务类型分别生成不同数据规模的待处理数据。19.步骤3)、将步骤2)中生成的待测数据分别在以步骤1)中生成的参数组合启动的集群中运行并统计运行时间记作ti。20.步骤4)、将步骤2)中的参数组合以及步骤3)中生成的数据规模做归一化处理,让各维度数据分布接近,避免模型参数被分布范围较大或者较小的数据支配。归一化公式为:[0021][0022]其中μi为pari的期望,σi为pari的方差。[0023]参数过滤包括以下步骤:[0024]步骤5)、使用步骤4)中得到的归一化后的参数以是否比默认参数性能优秀作为划分规则训练二分类c5.0决策树模型。[0025]步骤6)、使用步骤4)中得到的归一化后的参数以比默认参数组合性能优秀的程度作为划分规则训练多分类c5.0决策树模型。具体为比默认性能优秀5%、10%、20%以及30%以上。[0026]性能判断公式为:[0027][0028]其中tpar为pari的执行时间,tdef为pardef的执行时间。[0029]步骤7)、使用步骤5)、步骤6)中训练好的决策树模型对随机生成的共记50组参数组合进行划分过滤。保留下性能最优秀的20组参数组合。[0030]即:[0031]partop20=top20(dectreemc(dectreebc(par)))[0032]其中partop20为参数性能最佳的20组参数组合,dectreemc是多分类决策树模型。dectreebc是二分类决策树模型。[0033]性能预测包括以下步骤:[0034]步骤8)、使用步骤4)中得到的归一化后的参数以及任务类型、数据规模作为输入,以任务的实际执行时间作为输出,训练深度神经网络(dnn)模型。使用全连接网络,激活函数使用relu函数。过程如下:[0035]wc=relu(f(pari,ttype,d))[0036]神经网络使用adam优化器进行优化。[0037]步骤9)、对于待优化参数的任务t以及数据规模d,使用步骤8)中训练好的神经网络进行性能预测,得到该任务以及待处理的数据在不同参数组合下的运行时间。[0038]tpre=dnn(pari,ttype,d)[0039]参数优化包括以下步骤:[0040]步骤10)、使用步骤7)过滤出的20组参数组合作为状体集s,针对每个状态si使用步骤9)中获得的预测执行时间作为该状态的q值构建qtable。[0041]步骤11)、使用步骤9)的dnn模型预测带优化的任务在默认参数配置pardef下的执行时间计作tdef。使用该任务在指定参数组合下的执行时间和默认参数组合下的执行时间的差作为奖励函数。公式为:[0042]reward=tdef-tpre[0043]步骤12)、根据步骤10)以及步骤11)构建q-learning模型,用于优化参数组合,得到优化后的参数组合。在qlearning模型的训练过程中使用如下公式对qtable进行更新:[0044]qi+1=qi+α[r+γmaxqi-qi][0045]具体的算法流程如表1所示:[0046]表1参数优化的q-learning算法[0047]当前第1页12当前第1页12
技术特征:
1.一种用于spark集群参数优化的方法,其特征在于,包括以下步骤:步骤a.需要使用hibench生成特定任务所能处理的数据,在不同的参数组合运行的集群中执行任务,获得任务的运行时间;步骤b.使用步骤a中所采集的数据对决策树模型和深度神经网络模型进行训练。步骤c.将待优化的集群需要运行的任务、数据规模和随机生成的参数组合输入到步骤b训练好的决策树模型中,进行参数过滤;步骤d.将待优化的集群需要运行的任务、数据规模和经步骤c过滤后的参数组合输入到步骤b训练好的神经网络模型中,预测任务在不同参数组合下的执行时间;步骤e.使用步骤c中经过滤的参数组合和步骤d生成的预测时间构建q-learning模型,对参数进行优化,得到优化后的参数组合。2.根据权利要求1所述的方法,其中步骤b具体包括如下步骤:步骤b01.构建二分类决策树模型;步骤b02.使用收集好的数据对b01的模型进行训练;步骤b03.构建多分类决策树模型;步骤b04.使用收集好的数据中运行时间快于默认参数配置的数据对b03的模型进行训练;步骤b05.构建深度神经网络模型;步骤b06.使用收集好的数据对b05的模型进行训练。3.根据权利要求1所述的方法,其中步骤e具体包括如下步骤:步骤e01.使用步骤c过滤后的参数组合的集合作为q-learning中的状态集合s;步骤e02.使用步骤d预测出的执行时间作为q-learning中qtable对应的值q;步骤e03.使用ε-greedy策略选择每一步执行的action。
技术总结
本发明提出一种Spark集群参数自动优化的方法,可以根据任务类型以及数据规模自动的对集群参数进行优化以发挥集群的最优性能。该方法主要包括以下步骤:1、数据采集。使用不同的参数组合启动集群并提交Spark任务,统计不同类型的任务在不同参数组合下的运行时间。任务类型主要分为IO密集型任务、计算密集型任务、内存密集型任务以及迭代密集型任务。2、参数筛选。使用机器学习算法中的决策树模型,以不同类型的任务与数据规模在默认参数配置下的运行时间作为基准,对运行性能高于默认参数配置的参数组合进行筛选。3、性能预测。使用深度神经网络模型,将筛选出的参数组合与任务类型、数据规模等信息作为模型输入,预测任务的执行时间。4、参数优化。使用强化学习中的Q-Learning算法,对筛选出的参数组合进行优化,得到一个最优参数配置。通过参数筛选可以有效的降低状态空间,使Q-Learning算法具有更好的收敛性。收敛性。收敛性。
技术研发人员:王泽廷 于晓雯 徐雷 蔡志成 宋晓勤
受保护的技术使用者:南京理工大学
技术研发日:2023.05.29
技术公布日:2023/9/20
技术领域:
:1.本发明涉及大数据处理领域,提出了一种基于机器学习算法的spark集群参数自动优化的方法及系统。
背景技术:
::2.spark作为一种应用广泛的分布式大数据计算框架,具有良好的可扩展性和健壮性。相较于同类型的并行计算处理框架hadoop,因为其特有的基于内存计算的特点,而具有了更快的运算速度。用户可以将自定义的计算任务提交到spark集群进行计算并得到相应的计算结果。但在集群启动以及任务提交的过程中,为了尽可能的发挥硬件资源的性能,提高用户的可控性;该计算框架提供了一系列可配置的参数,用户需要对这些参数进行相应的配置,不同的参数配置会对集群的性能产生很大的影响。对于某一特定集群而言,不同的参数配置存在极大的差别,因此需要根据集群节点的硬件情况、执行的任务情况对参数进行调优以达到集群性能的最佳情况。其次,由于可配置的参数数量较大,各个参数之间可能存在相互制约和依赖的关系,设置不合理会导致整个集群无法正常工作。所以,使参数之间的制约和依赖达到平衡同样非常重要。3.在传统的参数调优工作中使用的方法可分为两种,第一是根据工作经验,针对不同的任务,由经验丰富的工作人员给出一个可能的最优参数组合。第二是在任务的实际运作过程中,通过监控集群状体和任务运行情况,分析集群与任务日志,找出集群性能的瓶颈,调整对应参数并迭代上述过程,动态的将集群状态调整到最优情况。4.上述两种方法虽然是集群调参的主流方式,但都存在一些问题。首先,根据经验的调参方法具有很大的不确定性;同时对人的依赖程度十分严重。而对于迭代调参法而言,由于需要实时监控集群状态,并不断的重启集群使参数生效,会消耗相当程度的时间成本和人力成本。针对存在的问题,本发明提出了一种基于机器学习的spark集群的调参方法。该方法针对四种任务类型,使用机器学习算法,自动生成最佳的参数组合方案。可以有效的提高集群性能,并节约各项成本。技术实现要素:5.本发明的目的在于提供一种自动优化spark集群参数的方法,该方法包括以下步骤:6.步骤1:生成默认参数组合并随机生成多种参数组合,针对不同类型的spark任务,使其在不同参数组合的集群中运行;收集参数组合、任务类型、数据规模以及任务运行时间;对数据进行归一化处理得到一组可用于机器学习算法的数据集。7.步骤2:建立决策树模型,对参数进行过滤,保留性能高于默认参数配置的参数组合。8.步骤3:建立深度神经网络模型,将步骤2中性能优于默认配置的参数组合与任务类型、数据规模作为输入;任务的运行时间作为输出。训练回归模型,使模型可以预测某种参数组合和任务规模下,特定类型任务的执行时间。9.步骤4:使用步骤3得到的预测时间与参数组合、数据规模、任务类型等建立q-learning模型,得到当前任务类型和数据规模下可使用的最优参数组合。附图说明10.图1是本发明选取的参数列表。11.图2是本发明的训练流程。12.图3是本发明的优化流程。13.图4是本发明选取的神经网络架构。具体实施方式14.下面结合附图对本发明进行进一步详细的说明:15.1.一种用于自动优化spark集群参数的方法,包括数据采集、参数过滤、性能预测和参数优化四个过程。16.数据采集包括以下步骤:17.步骤1)、随机生成49组随机取值的参数组合以及1组默认取值的参数组合,分别计作pari和pardef。18.步骤2)、使用hibench大数据测试工具,针对四种不同的任务类型分别生成不同数据规模的待处理数据。19.步骤3)、将步骤2)中生成的待测数据分别在以步骤1)中生成的参数组合启动的集群中运行并统计运行时间记作ti。20.步骤4)、将步骤2)中的参数组合以及步骤3)中生成的数据规模做归一化处理,让各维度数据分布接近,避免模型参数被分布范围较大或者较小的数据支配。归一化公式为:[0021][0022]其中μi为pari的期望,σi为pari的方差。[0023]参数过滤包括以下步骤:[0024]步骤5)、使用步骤4)中得到的归一化后的参数以是否比默认参数性能优秀作为划分规则训练二分类c5.0决策树模型。[0025]步骤6)、使用步骤4)中得到的归一化后的参数以比默认参数组合性能优秀的程度作为划分规则训练多分类c5.0决策树模型。具体为比默认性能优秀5%、10%、20%以及30%以上。[0026]性能判断公式为:[0027][0028]其中tpar为pari的执行时间,tdef为pardef的执行时间。[0029]步骤7)、使用步骤5)、步骤6)中训练好的决策树模型对随机生成的共记50组参数组合进行划分过滤。保留下性能最优秀的20组参数组合。[0030]即:[0031]partop20=top20(dectreemc(dectreebc(par)))[0032]其中partop20为参数性能最佳的20组参数组合,dectreemc是多分类决策树模型。dectreebc是二分类决策树模型。[0033]性能预测包括以下步骤:[0034]步骤8)、使用步骤4)中得到的归一化后的参数以及任务类型、数据规模作为输入,以任务的实际执行时间作为输出,训练深度神经网络(dnn)模型。使用全连接网络,激活函数使用relu函数。过程如下:[0035]wc=relu(f(pari,ttype,d))[0036]神经网络使用adam优化器进行优化。[0037]步骤9)、对于待优化参数的任务t以及数据规模d,使用步骤8)中训练好的神经网络进行性能预测,得到该任务以及待处理的数据在不同参数组合下的运行时间。[0038]tpre=dnn(pari,ttype,d)[0039]参数优化包括以下步骤:[0040]步骤10)、使用步骤7)过滤出的20组参数组合作为状体集s,针对每个状态si使用步骤9)中获得的预测执行时间作为该状态的q值构建qtable。[0041]步骤11)、使用步骤9)的dnn模型预测带优化的任务在默认参数配置pardef下的执行时间计作tdef。使用该任务在指定参数组合下的执行时间和默认参数组合下的执行时间的差作为奖励函数。公式为:[0042]reward=tdef-tpre[0043]步骤12)、根据步骤10)以及步骤11)构建q-learning模型,用于优化参数组合,得到优化后的参数组合。在qlearning模型的训练过程中使用如下公式对qtable进行更新:[0044]qi+1=qi+α[r+γmaxqi-qi][0045]具体的算法流程如表1所示:[0046]表1参数优化的q-learning算法[0047]当前第1页12当前第1页12
技术特征:
1.一种用于spark集群参数优化的方法,其特征在于,包括以下步骤:步骤a.需要使用hibench生成特定任务所能处理的数据,在不同的参数组合运行的集群中执行任务,获得任务的运行时间;步骤b.使用步骤a中所采集的数据对决策树模型和深度神经网络模型进行训练。步骤c.将待优化的集群需要运行的任务、数据规模和随机生成的参数组合输入到步骤b训练好的决策树模型中,进行参数过滤;步骤d.将待优化的集群需要运行的任务、数据规模和经步骤c过滤后的参数组合输入到步骤b训练好的神经网络模型中,预测任务在不同参数组合下的执行时间;步骤e.使用步骤c中经过滤的参数组合和步骤d生成的预测时间构建q-learning模型,对参数进行优化,得到优化后的参数组合。2.根据权利要求1所述的方法,其中步骤b具体包括如下步骤:步骤b01.构建二分类决策树模型;步骤b02.使用收集好的数据对b01的模型进行训练;步骤b03.构建多分类决策树模型;步骤b04.使用收集好的数据中运行时间快于默认参数配置的数据对b03的模型进行训练;步骤b05.构建深度神经网络模型;步骤b06.使用收集好的数据对b05的模型进行训练。3.根据权利要求1所述的方法,其中步骤e具体包括如下步骤:步骤e01.使用步骤c过滤后的参数组合的集合作为q-learning中的状态集合s;步骤e02.使用步骤d预测出的执行时间作为q-learning中qtable对应的值q;步骤e03.使用ε-greedy策略选择每一步执行的action。
技术总结
本发明提出一种Spark集群参数自动优化的方法,可以根据任务类型以及数据规模自动的对集群参数进行优化以发挥集群的最优性能。该方法主要包括以下步骤:1、数据采集。使用不同的参数组合启动集群并提交Spark任务,统计不同类型的任务在不同参数组合下的运行时间。任务类型主要分为IO密集型任务、计算密集型任务、内存密集型任务以及迭代密集型任务。2、参数筛选。使用机器学习算法中的决策树模型,以不同类型的任务与数据规模在默认参数配置下的运行时间作为基准,对运行性能高于默认参数配置的参数组合进行筛选。3、性能预测。使用深度神经网络模型,将筛选出的参数组合与任务类型、数据规模等信息作为模型输入,预测任务的执行时间。4、参数优化。使用强化学习中的Q-Learning算法,对筛选出的参数组合进行优化,得到一个最优参数配置。通过参数筛选可以有效的降低状态空间,使Q-Learning算法具有更好的收敛性。收敛性。收敛性。
技术研发人员:王泽廷 于晓雯 徐雷 蔡志成 宋晓勤
受保护的技术使用者:南京理工大学
技术研发日:2023.05.29
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种智能网联环境下交叉口行人过街风险预警方法及系统 下一篇:倾斜裁断方法与流程