一种基于成本模型的SPARK参数自动调优方法技术

技术编号:23190714 阅读:27 留言:0更新日期:2020-01-24 16:11
本发明专利技术提出一种基于成本模型的Spark参数自动调优方法,包括如下步骤,步骤一:通过获取任务执行的配置与对应的成本信息,构建基于成本的性能模型,在给定的参数空间中获得优化配置;步骤二:对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值。本发明专利技术针对目前配置参数调优可能存在的问题提出了基于成本的性能模型,通过对Spark历史任务分析生成性能模型,通过参数空间搜索算法获取优化参数,同时随着新任务的运行不断对模型进行升级调整,增加模型的准确性,针对未知类型的任务,运行一次后,提供参数参考值。

A method of automatically tuning spark parameters based on cost model

【技术实现步骤摘要】
一种基于成本模型的SPARK参数自动调优方法
本专利技术涉及Spark任务性能模型建立,大数据系统配置参数空间搜索,任务相似性判断。
技术介绍
随着科学技术的不断发展,小到一部手机、一个平板,大到天文望远镜、大型强子对撞机,都是数据的产生者,从南极到北极、从海底到太空,无时无刻不在产生着大量的数据。如何存储、处理、分析这些数据,也成为摆在大家面前的现实课题。自谷歌2003年发表GoogleFileSystem论文以来,涌现了一批分布式计算框架,如hadoop、sparkSpark—工作集上的集群计算,这些框架的出现,为大数据的存储、处理提供了基础,也在各应用场景下发挥着重要作用。针对hadoop在迭代处理时效率低下的问题,Spark应运而生。虽然spark在处理迭代计算任务上有着较好的表现,但是对于spark任务的性能优化,仍然是值得关注的问题。对于spark的性能优化,主要关注在任务代码优化、内存优化、配置参数优化和调度优化等方面,但是对于spark集群运维人员来说,调整优化配置参数,是提高spark系统性能是最常见、最便于实施的操作。在大数据时代,针对各类大数据系统的参数调优也提出了各种方设法,这些方法各有特点,但也存在一些不足,使得在参数调优过程中或多或少存在一些问题。目前常用的大数据系统参数调优方法有以下几种。1.基于现成的任务模拟器,进行参数优化基于现成的模拟器,可以减少对系统信息的采集,利用模拟器器中的通用模型对待优化任务进行调优。但是基于模拟器进行配置参数优化,模型无法根据系统具体情况进行调整升级,模型对具体任务的适应性较差,获取的优化参数难以达到最优值。2.通过动态插装的方法构建性能模型进行配置参数优化通过动态插装可以获取任务运行时的大量系统状态值,为生成性能模型提供支持。但是过多的插装必然会对任务运行产生影响,导致难以精准的构建性能模型,使得参数优化有所偏差。3.手动进行配置参数优化对于经验丰富的运维人员来说,在待调参数较少时可以通过对配置参数的调整,实现任务性能的大幅增长,但是这需要对系统非常熟悉才能够达到,而且无法确定是否有更好的配置。但是随着参数的增加,即使是经验丰富的运维人员,也很难通过手动调整配置参数进行调优。综上所述,目前的方法在配置参数调优中难以动态升级性能模型;生成的性能模型受系统运行状态影响较大,无法精准的建立模型;手动调优无法适应较大参数参数空间。针对存在的问题,需要一套在建立性能模型时对系统产生影响很小,同时模型可以动态升级的参数自动调优系统。
技术实现思路
本专利技术提供了一种基于成本模型的Spark参数自动调优方法,包括如下步骤,步骤一:通过获取任务执行的配置与对应的成本信息,构建基于成本的性能模型,在给定的参数空间中获得优化配置;步骤二:对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值其中,步骤一、具体包括以下步骤:步骤(1.1)随机选择参数N次;通过随机采样的方法,在给定的参数空间中,提供多种样本种类,其中N的次数大于等于20;步骤(1.2)生成Spark任务执行脚本;任务执行脚本的生成主要需要两个方面的内容:任务执行的命令和使用的配置参数;针对不同类型的任务,生成相应的执行本;步骤(1.3)开启任务执行监控;任务执行监控主要用于监控任务执行的情况,当发现有新任务执行时,会将相应的运行信息记录并保存至数据库中;步骤(1.4)执行脚本,将结果写入数据库;执行生成的Spark任务脚本后,会产生用于建模所需的成本数据,此时监控脚本会定时查看任务运行情况,将新产生的信息保存至数据库;步骤(1.5)从数据库中读数据,进行性能建模;在数据库中,存放任务执行的成本信息,每个配置参数对应值以及任务量,不同类型数据对任务量的定义不同,文本数据定义为文本的大小,社交图数据定义为节点数和边数,通过从数据库中读取同一种任务的多次实验数据,导入到机器学习模型中进行回归分析,其中因变量为成本,自变量为队形的配置和任务量;步骤(1.6)存储性能模型;存储性能模型用于执行参数空间搜索时调用,以及用于模型的升级;步骤(1.7)执行参数空间搜索算法:其中,所述步骤二,配置参数自动优化时,对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值,包括以下步骤:步骤(2.1)载入新任务;包括新任务的类型和任务量信息;步骤(2.2)遍历数据库,寻找是否有相同类型的任务;如果有,跳转到子步骤(2-1);否则跳转到子步骤(2-2);具体步骤如下:子步骤(2-1)调用已有的性能模型,进行参数优化,获得结果后,跳转到步骤(2.4);子步骤(2-2)执行一次新任务,跳转到步骤(2.3);步骤(2.3)调用相似度判别器;通过相似度判别器,判断是否有相似任务;具体步骤如下:(3-1)判断是否有相似任务,如果是,跳转到(3-2),否则跳到(3-3);(3-2)调用相似的性能模型,进行参数优化,获得结果后,跳转到步骤(2.4);(3-3)建立新的任务类型,开始进行参数调优,获得结果后,跳转到步骤(2.4);步骤(2.4)给出优化参数,并结束任务。所述集群调度器通过连接Spark集群和其他调优模块,负责日志的获取、配置文件的读写、以及通过存储器存储资源,通过任务相似性判别器对未知类型的任务提供参考配置。在给定参数空间中生成随机的配置参数N次,其计算公式如下:Pi=Frandom(Pspace)其中Pi表示生成的第i个配置参数,i从1到N;Pspace给定的参数空间,Frandom表示在给定参数空间中随机生成配置参数。采用两种不同类型的机器学习回归算法来生成性能模型,在生成模型时,需要调用数据库中存储的某一类型任务的所有信息,包括参数、任务量和对应的成本,以任务运行时间作为成本,计算如下:(4-1)基于bagging的extratree算法,其计算公式如下:MODELet=ALGextratreeregressor(P[x][y],COSTlist)其中MODELet表示使用extratree算法回归生成的性能模型,ALGextratreeregressor表示extratree回归算法,P[x][y]为表示任务的参数和任务量矩阵,COSTlist表示每个任务对应的成本列表;或者:(4-2)基于boosting的XGBoost算法,其计算公式如下:MODELxgb=ALGxgbregressor(P[x][y],COSTlist)其中MODELxgb表示使用xgboost回归生成的性能模型,ALGxgbregressor表示XGBoost回归算法,P[x][y]表示任务的参数和任务量矩阵,COSTlist每个任务对应的成本列表。...

【技术保护点】
1.一种基于成本模型的Spark参数自动调优方法,其特征在于,包括如下步骤:/n步骤一:通过获取任务执行的配置与对应的成本信息,构建基于成本的性能模型,在给定的参数空间中获得优化配置;/n步骤二:对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值;/n其中,步骤一、具体包括以下步骤:/n步骤(1.1)随机选择参数N次;/n通过随机采样的方法,在给定的参数空间中,提供多种样本种类,其中N的次数大于等于20;/n步骤(1.2)生成Spark任务执行脚本;/n任务执行脚本的生成主要需要两个方面的内容:任务执行的命令和使用的配置参数;针对不同类型的任务,生成相应的执行本;/n步骤(1.3)开启任务执行监控;/n任务执行监控主要用于监控任务执行的情况,当发现有新任务执行时,会将相应的运行信息记录并保存至数据库中;/n步骤(1.4)执行脚本,将结果写入数据库;/n执行生成的Spark任务脚本后,会产生用于建模所需的成本数据,此时监控脚本会定时查看任务运行情况,将新产生的信息保存至数据库;/n步骤(1.5)从数据库中读数据,进行性能建模;/n在数据库中,存放任务执行的成本信息,每个配置参数对应值以及任务量,不同类型数据对任务量的定义不同,文本数据定义为文本的大小,社交图数据定义为节点数和边数,通过从数据库中读取同一种任务的多次实验数据,导入到机器学习模型中进行回归分析,其中因变量为成本,自变量为队形的配置和任务量;/n步骤(1.6)存储性能模型;/n存储性能模型用于执行参数空间搜索时调用,以及用于模型的升级;/n步骤(1.7)执行参数空间搜索算法:/n其中,所述步骤二,配置参数自动优化时,对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值,包括以下步骤:/n步骤(2.1)载入新任务;/n包括新任务的类型和任务量信息;/n步骤(2.2)遍历数据库,寻找是否有相同类型的任务;如果有,跳转到子步骤(2-1);否则跳转到子步骤(2-2);具体步骤如下:/n子步骤(2-1)调用已有的性能模型,进行参数优化,获得结果后,跳转到步骤(2.4);/n子步骤(2-2)执行一次新任务,跳转到步骤(2.3);/n步骤(2.3)调用相似度判别器;通过相似度判别器,判断是否有相似任务;具体步骤如下:/n(3-1)判断是否有相似任务,如果是,跳转到(3-2),否则跳到(3-3);/n(3-2)调用相似的性能模型,进行参数优化,获得结果后,跳转到步骤(2.4);/n(3-3)建立新的任务类型,开始进行参数调优,获得结果后,跳转到步骤(2.4);/n步骤(2.4)给出优化参数,并结束任务。/n...

【技术特征摘要】
1.一种基于成本模型的Spark参数自动调优方法,其特征在于,包括如下步骤:
步骤一:通过获取任务执行的配置与对应的成本信息,构建基于成本的性能模型,在给定的参数空间中获得优化配置;
步骤二:对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值;
其中,步骤一、具体包括以下步骤:
步骤(1.1)随机选择参数N次;
通过随机采样的方法,在给定的参数空间中,提供多种样本种类,其中N的次数大于等于20;
步骤(1.2)生成Spark任务执行脚本;
任务执行脚本的生成主要需要两个方面的内容:任务执行的命令和使用的配置参数;针对不同类型的任务,生成相应的执行本;
步骤(1.3)开启任务执行监控;
任务执行监控主要用于监控任务执行的情况,当发现有新任务执行时,会将相应的运行信息记录并保存至数据库中;
步骤(1.4)执行脚本,将结果写入数据库;
执行生成的Spark任务脚本后,会产生用于建模所需的成本数据,此时监控脚本会定时查看任务运行情况,将新产生的信息保存至数据库;
步骤(1.5)从数据库中读数据,进行性能建模;
在数据库中,存放任务执行的成本信息,每个配置参数对应值以及任务量,不同类型数据对任务量的定义不同,文本数据定义为文本的大小,社交图数据定义为节点数和边数,通过从数据库中读取同一种任务的多次实验数据,导入到机器学习模型中进行回归分析,其中因变量为成本,自变量为队形的配置和任务量;
步骤(1.6)存储性能模型;
存储性能模型用于执行参数空间搜索时调用,以及用于模型的升级;
步骤(1.7)执行参数空间搜索算法:
其中,所述步骤二,配置参数自动优化时,对于未知类型的任务,采用默认参数一次运行,通过判别任务相似性,给出优化配置的参考值,包括以下步骤:
步骤(2.1)载入新任务;
包括新任务的类型和任务量信息;
步骤(2.2)遍历数据库,寻找是否有相同类型的任务;如果有,跳转到子步骤(2-1);否则跳转到子步骤(2-2);具体步骤如下:
子步骤(2-1)调用已有的性能模型,进行参数优化,获得结果后,跳转到步骤(2.4);
子步骤(2-2)执行一次新任务,跳转到步骤(2.3);
步骤(2.3)调用相似度判别器;通过相似度判别器,判断是否有相似任务;具体步骤如下:
(3-1)判断是否有相似任务,如果是,跳转到(3-2),否则跳到(3-3);
(3-2)调用相似的性能模型,进行参数优化,获得结果后,跳转到步骤(2.4);
(3-3)建立新的任务类型,开始进行参数调优,获得结果后,跳转到步骤(2.4);
步骤(2.4)给出优化参数,并结束任务。


2.根据权利要求1所述的Spark配置参数自动优化方法,其特征在于:
集群调度器通过连接Spark集群和其他调优模块,负责日志的获取、配置文件的读写、以及通过存储器存储资源,通过任务相似性判别器对未知类型的任务提供参考配置。


3.根据权利要求1所述的Spark配置参数自动优化方法,其特征在于:
在给定参数空间中生成随机的配置参数N次,其计算公式如下:
Pi=Frandom(Pspace)
其中Pi表示生成的第i个配置参数,i从1到N;Pspace给定的参数空间,Frandom表示在给定参数空间中随机生成配置参数。


4.根据权利要求1所述的Spark配置参数自动优化方法,其特征在于:
采用两种不同类型的机器学习回归算法来生成性能模型,在生成模型时,需要调用数据库中存储的某一类型任务的所有信息,包括参数、任务量和对应的成本,以任务运行时间作为成本,计算如下:
(4-1)基于bagging的extratree算法,其计算公式如下:
MODELet=ALGextratreeregressor(P[x][y],COSTlist)
其中MODELet表示使用extratree算法回归生成的性能模型,ALGextratreeregressor表示extratree回归算法,P[x][y]为表示任务的参数和任务量矩阵,COSTlist表示每个任务对应的成本列表;或者:
(4-2)基于boosti...

【专利技术属性】
技术研发人员:杨海龙马群李云春
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1