CN111858003B - 一种Hadoop最优参数评估方法及装置 - Google Patents
一种Hadoop最优参数评估方法及装置 Download PDFInfo
- Publication number
- CN111858003B CN111858003B CN202010687234.3A CN202010687234A CN111858003B CN 111858003 B CN111858003 B CN 111858003B CN 202010687234 A CN202010687234 A CN 202010687234A CN 111858003 B CN111858003 B CN 111858003B
- Authority
- CN
- China
- Prior art keywords
- hadoop
- chromosome
- optimal
- sequence
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于大数据信息处理领域,提供了一种Hadoop最优参数评估方法及装置。其中,Hadoop最优参数评估方法,包括接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数并输出至Hadoop集群服务器;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案。
Description
技术领域
本发明属于大数据信息处理领域,尤其涉及一种Hadoop最优参数评估方法及装置。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
Google是大数据处理的先驱,MapReduce,GFS和BigTable是三项重要技术,为大数据分布式处理奠定基础。MapReduce是一种分布式计算技术和简化的分布式编程模式。基于三核谷歌技术,Apache开发了开源名为Hadoop的软件,可以实现MapReduce计算模型的框架。MapReduce的性能受到配置参数的显著影响。
有数百种会影响MapReduce作业执行的配置参数,例如化简任务的数量,缓冲区大小,排序百分比等。然而,参数空间巨大,参数彼此之间会有影响,使参数调整变得麻烦。手动探索参数是不切实际的,因为如果尝试所有可能的参数去执行作业,每个作业需要几分钟加起来,时间会非常长。发明人发现有效的解决方案是建立一个预测模型,将配置参数作为输入并输出执行时间预测模型。利用此模型,可以快速有效地搜索参数空间。
目前,针对于作业执行时间的建模,研究方法大致分为两类:第一类是通过公式推导,根据对于MapReduce执行过程的高度掌握,将作业执行各阶段与参数配置的关系用公式表示,经过一步步公式推导,得出最终完成时间。然而,发明人发现,这种方式的弊端在于,影响作业性能的参数有很多,公式覆盖能力及其有限,这会忽视其他重要参数,使得优化效果欠佳,同时这也需要建模者对MapReduce有充分的掌握程度,能力要求较高;第二类方法是将对作业性能有重要影响的参数一起作为预测模型的输入,通过训练数据集得到作业执行时间与参数配置的对应模型,但发明人发现,现有模型只考虑了参数,而没有考虑到资源,然而资源对作业性能也有很重要的影响,资源不足时会导致执行速度变慢。
发明内容
为了解决上述问题,本发明提供一种Hadoop最优参数评估方法及装置,其根据作业数量选择相匹配的方案来评估Hadoop参数,能够达到提高集群性能,节省时间和资源成本的目的。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种Hadoop最优参数评估方法。
一种Hadoop最优参数评估方法,包括:
接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;
根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数并输出至Hadoop集群服务器;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案。
本发明的第二个方面提供一种Hadoop最优参数评估装置。
一种Hadoop最优参数评估装置,包括:
作业接收模块,其用于接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;
参数评估模块,其用于根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案。
本发明的第三个方面提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的Hadoop最优参数评估方法中的步骤。
本发明的第四个方面提供一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的Hadoop最优参数评估方法中的步骤。
与现有技术相比,本发明的有益效果是:
(1)本发明根据作业数量选择相匹配的方案来评估Hadoop参数,基于作业历史执行的情况和资源,寻找一组最优的参数配置,使得作业的运行时间最短,从而达到提高集群性能,节省时间和资源成本的目的;
(2)针对多个作业,也就是非单个作业而言,需要在考虑作业调度的同时为整个作业序列寻找一组通用的参数,使得这组作业的完成时间最短。发明人将强化学习和遗传算法相结合,构建适应度函数,通过不断迭代计算适应度函数,从而获得最优参数配置。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的Hadoop参数评估方法的示意图;
图2是本发明实施例的基于单作业执行的Hadoop参数评估处理流程图;
图3是本发明实施例的基于单作业遗传算法的参数优化的流程图;
图4是本发明实施例的多作业强化遗传算法的参数优化的流程图;
图5是本发明实施例的性能结果比较图;
图6是本发明实施例的Hadoop参数评估原理图;
图7是本发明实施例的性能预测方法中的MAPE(平均绝对百分比误差)值。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例一种Hadoop最优参数评估方法,其包括:
S101:接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;
S102:根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数并输出至Hadoop集群服务器;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案。
根据作业数量选择相匹配的方案来评估Hadoop参数,主要分为单个作业和多个作业主要分为单个作业和多个作业。此处的多个作业,指的是非单个作业,就是至少两个作业。
针对单个作业,首先用随机森林预测每个map、reduce、shuffle的执行时间,然后用装箱算法得到整个作业的执行时间,最后通过遗传算法迭代搜索最优解,算法输出一组最优的参数配置,使得该作业运行时间最短;针对多个作业,在考虑作业调度的同时,采用强化学习思想和遗传算法相结合,为整个作业序列寻找一组通用的参数,使得这组作业的完成时间最短。
具体地,针对单作业而言,如图2所示,用户提交作业后,先进行作业执行时间预测,预测分为两阶段:第一阶段为预测单个map任务、reduce任务和shuffle的执行时间,第二阶段根据单个任务长度,用装箱的思想将任务填入可用资源中,最终得到整个作业的完成时间。之后将其作为适应度函数,和当前参数配置一起作为参数优化的输入,用经过改进后的遗传算法在参数空间内寻找使得完成时间最短的参数配置,返回给Hadoop集群。
如图2所示,针对单个作业的第一调优方案,其评估Hadoop参数的过程为:
S1021:基于Hadoop集群中历史资源的可用情况,预测单个map任务、reduce任务和shuffle任务的执行时间;
Haddop集群下,一个作业的执行包括map、shuffle、reduce三个阶段。因此可以理解为一个作业包括Map、reduce、shuffle这三个任务;本实施例中的作业指的是基于MapReduce的数据计算任务。
具体地,采集作业执行数据包含历史作业执行数据和当前数据,对获取的海量数据进行数据预处理,包含数据清洗、缺失数据补全、数据定义并存储。
在一个三节点的集群上进行实验。主节点150G磁盘,30G内存,16核Intel XeonCPU。两个从节点各70G磁盘,20G内存,16核Intel Xeon CPU。Linux版本Red HatEnterprise Linux Server release 7.4,Hadoop版本2.5.0。发明人使用5个Hadoop标准程序:WordCount,TeraSort,InvertedIndex,Sort,SecondSort。每个标准程序有五个输入大小:128MB,512MB,1GB,2GB,5GB,10GB。输入由各自的输入生成器产生。用1000个输入数据集来训练模型,用200个输入数据集来验证模型。实验中用到的参数见表1:
表1
在具体实施中,随机森林回归模型根据Hadoop集群中历史资源的可用情况,预测单个map任务、reduce任务和shuffle任务的执行时间。
随机森林由多棵决策树组成,将所有决策树的结果取平均值形成最终输出。训练集S是一组观测值,这里一共有m个样本,每个样本包括作业类型、参数配置、任务执行时间。假设m个样本是独立同分布的。为了构建作业执行时间预测模型,对本实施中用到的符号进行定义,如表2所示。
表2
B1.考虑到参数间的影响,将参数进行四则运算来扩充参数空间。例如,sort.spill.percent(记为a),io.sort.mb(记为b),经过运算,得到扩充后的参数:a+b,a-b,a*b,a/b。
为了训练模型,需要先构建一个训练矩阵S,S的每行由以下变量构成:
vi=(ti,ji,ci),i=1,...,n (1)
其中vi是第i个观测值,ti是任务的执行时间,ji是作业类型(IO或CPU密集型),ci是扩充后的参数配置。
根据公式(1),每个map任务的执行时间可以表示为:
其中k是训练样本的个数。经验表明k接近于2000的时候模型收敛,所以将k设为2000。注意f是一个数据模型,没有公式,可以用随机森林回归模型得到。
B2.基于B1中描述的过程,可以得到每个reduce的执行时间(不含shuffle阶段):
B3.每个shuffle阶段的执行时间可表示为:
ncmk为已完成的map任务数量,因为它会影响shuffle时间,如果有未完成的map任务,shuffle就需要等待。
S1022:结合装箱算法的思想将map任务、reduce任务和shuffle任务填入可用资源中,预测得到整个作业的完成时间。
将作业执行阶段划分为时间槽,在每个时间槽的开始,比较可用资源和剩余任务数量,然后根据资源来启动适量的任务。
其中,参数mapreduce.job.reduce.slowstart.completedmaps决定了在reduce开始之前需要完成的map任务比例。
基于上述描述,给出了基于装箱思想的作业执行时间预测算法。
基于装箱算法的作业执行时间预测算法过程如下:
输入:参数配置C,作业信息J,资源信息R
输出:作业执行时间T
在上述算法中,首先根据随机森林模型得到每个map任务、reduce任务和shuffle的执行时间,然后计算已执行的map任务数,用于判断是否达到可以启动reduce的条件(行5-6);当前已执行的map任务数大于启动reduce之前需要完成的map任务数,则达到启动reduce的条件,将标志置为true(行7-8);然后计算复制最后一轮map之前的map所需要的时间槽数,为shuffle的总时间乘以已完成的map数和map总数的比值(行14-15);计算复制最后一轮map所需要的时间槽数(行16-17);计算shuffle的完成时间(行18-24);然后根据剩余map任务数和可用container个数更新剩余map任务数和可用container个数(行18-33);根据剩余shuffle数和可用container个数更新剩余shuffle数和可用container个数(行34-41);根据剩余reduce数和可用container个数更新剩余reduce数和可用container个数(行44-50);计算当前可执行的reduce个数和已完成的reduce个数(行51-54);最后通过时间槽数乘以每个时间槽长度计算出作业的执行时间(行56)。
S1023:基于预测的作业完成时间与Hadoop参数之间的关系及当前作业类型、大小和可用资源,通过遗传算法迭代搜索最优解,输出一组使得作业完成时间最短的最优参数配置。
为了寻找一组使得作业完成时间最短的最优参数配置,需要用到优化算法。考虑到遗传算法适合大规模搜索,且可以避免陷入局部最优,这里采用遗传算法进行优化求解。由于参数间存在相互作用,且很多参数作用于MapReduce的多个阶段,所以为了简化运算,不针对每个阶段求解最优参数,而是针对整个作业进行参数调优。将前面获得的时间模型的输出,以及当前上下文(作业类型、大小、可用资源)作为GA搜索的输入,同时也作为适应度函数。优化框架如图3所示。具体地,
D1.在合理范围内随机生成m组参数,每组n个参数,作为GA的输入。
D2.预测的作业执行时间作为GA的适应度函数,GA选择两组适应度最小的参数作为父母。在交叉操作中,GA从一个父母中随机选择k个参数值,从另一个父母中选择n-k个参数值,将二者组合形成新的参数集。在这里,变异概率设为0.01,也就是参数值的改变率为0.01,发明人以这个概率在合理范围内改变参数的值。
D3.对参数空间进行扩充,作为GA的输出;
D4.在扩充后的参数下预测得到作业完成时间后,重新计算适应度函数,适应值最低的扩充参数作为候选人。第D2,D3,D4步迭代执行,直到最优参数(使得作业执行时间最短的参数)被找到。
对待预测作业数据进行完成时间预测,将预测结果进行推送,并与实际完成时间进行结果对比,如图5所示。图7描述了性能预测方法中的MAPE(平均绝对百分比误差)值。基于图7中的结果可得,本实施例所提出的预测模型的预测性能优于其他预测方法。
针对非单个作业的第二调优方案为:基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估。具体地,发明人考虑在FIFO调度策略下的调度次序和参数调优,如图4所示。
当用户提交一批作业时,首先初始化生成一批染色体,初始种群的遗遗传前景和变异前景都相等。在这里,遗传前景/变异前景用于评估染色体交叉/变异产生的子个体的质量,即子个体存活的时间长短以及子个体的遗传/变异前景。子个体存活时间长且能够再产生优秀的子个体,就说明染色体的遗传/变异前景越大,在下一轮的交叉操作中被选择的概率也就越大,否则说明染色体的遗传/变异前景较小,被选中的概率也就越小。遗传算法流程分为三步:
第一步,交叉操作。这个过程中,首先计算每个染色的遗传前景,然后基于轮盘赌的思想计算每个染色体被选中的概率,按照选中概率,通过有放回抽样的方式选择染色体进行交叉操作,得到子染色体。
第二步,变异操作。这个过程中,首先计算每个染色体的变异前景,然后基于轮盘赌的思想计算每个染色体被选中的概率,按照选中概率,通过有放回抽样的方式选择染色体进行变异操作,得到子染色体。
第三步,计算整个父子染色体种群中每个染色体的适应度函数,按适应度函数值从高到低进行排序,取排名靠前的染色体进入下一轮进化中,不断迭代直至满足终止条件,从而实现最优参数评估。
为了解决作业的合理调度次序以及针对该调度次序的最优参数配置的问题,基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估,其过程为:
基于一组给定的作业序列,运用两段编码策略将染色体分为调度序列段和参数配置段,适应度函数为该染色体的当前价值和调度序列的前景值分别与相应系数相乘后的累加和;
依次进行交叉操作和变异操作;且在每次交叉和变异之前都分别计算每条染色体遗传前景值和变异前景值,以此计算染色体被选中的概率;
计算整个父子染色体种群中每个染色体的适应度函数,按适应度函数值筛选染色体,最终输出最优调度序列和最优参数配置,使得整个作业序列的完成时间最短。
调度序列段的编码方式为:(j1,j2,...,jn),j表示作业,n为作业的个数。该编码方式表示n个作业的执行顺序。
参数配置段的编码方式为:(c1,c2,...,cm),c表示参数值,m表示需要优化的参数的个数。
基于上述描述,整个染色体的编码方式为:(j1,j2,...,jn,c1,c2,...,cm)。
在这种编码模式下,基于Hadoop集群中历史资源的可用情况,预测单个map任务、reduce任务和shuffle任务的执行时间;结合装箱算法的思想将map任务、reduce任务和shuffle任务填入可用资源中,预测得到整个作业的完成时间,可以得到每个作业的执行时间t,接下来预测整个作业序列的执行时间。
基于上述编码方式,计算染色体的适应度函数。在适应度函数计算中,将适应度函数也分成两个部分去计算,一个是该染色体的当前价值cur_v,另外一个是调度序列的前景值pro_v。
染色体的当前价值即在该染色体表示的调度序列和参数配置下,作业的完成时间。调度序列的前景值代表在该调度序列下取得最优解的概率,前景值越大,说明该调度序列越合理,在该序列下,通过合理的参数配置,作业的执行时间会最短。调度序列的前景值通过在该序列下染色体的最小价值和平均价值来评估。前景值计算函数如下:
最终适应度函数为:
FV=b*cur_v+(1-b)*pro_v(Qa) (6)
其中,b表示的是学习参数。
基于适应度函数,选择适应度函数最高的交叉方式进行交叉。
由于染色体的数量众多,用传统的遗传算法随机选择染色体进行配对交叉产生新个体的方式随机性太大,导致了遗传算法收敛较慢。因此,本实施引入强化学习的思想,对遗传算法的染色体交叉策略进行改进。即,为每条染色体设置一个“遗传前景”S,用于评估染色体交叉产生的子个体的质量,即子个体存活的时间长短以及子个体的遗传前景。子个体存活时间长且能够再产生优秀的子个体,就说明染色体的遗传前景越大,在下一轮的交叉操作中被选择的概率也就越大,否则说明染色体的遗传前景较小,被选中的概率也就越小。因此,在每一轮交叉开始之前,先要计算每条染色体的遗传前景值。
遗传前景的计算方式如下:
针对每个新生的染色体,为其设置初始的遗传前景值S=A。
随着染色体的不断进化,其在每一轮的遗传前景值的计算公式如下:
S=αS'+βmax(Sz) (7)
由此可得每个染色体的遗传前景值为:
其中,A为初始的遗传前景值,S'为上一轮的遗传前景值,α、β表示为衰减系数,max(Sz)表示染色体存活到本轮的所有子染色体中的最大的遗传前景值;Sz表示染色体存活到本轮的子染色体遗传前景值。
分别计算三种变异方式产生的后代适应度函数值,选择适应度函数最高的变异方式进行变异。引入强化学习的思想,为每条染色体设置一个“变异前景”M,用来评估染色体变异产生的子个体质量,即子个体存活的时间长短及子个体的变异前景。
变异前景的计算方式如下:
针对每个新生的染色体,为其设置初始的遗传前景值M=B。
随着染色体的不断进化,其在每一轮的变异前景值的计算公式如下:
M=λM'+μmax(Mz) (9)
由此可得每个染色体的变异前景值为:
其中M’为上一轮的遗传前景值,λ,μ为衰减系数,max(Mz)表示该染色体存活到本轮的所有子染色体中的最大的变异前景值。
在另一实施例中,提供了一种Hadoop最优参数评估装置,其包括:
(1)作业接收模块,其用于接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;
(2)参数评估模块,其用于根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案。
如图6所示,针对单个作业的第一调优方案为:
基于Hadoop集群中历史资源的可用情况,预测单个map任务、reduce任务和shuffle任务的执行时间;
结合装箱算法的思想将map任务、reduce任务和shuffle任务填入可用资源中,预测得到整个作业的完成时间;
基于预测的作业完成时间与Hadoop参数之间的关系及当前作业类型、大小和可用资源,通过遗传算法迭代搜索最优解,输出一组使得作业完成时间最短的最优参数配置。
如图6所示,针对非单个作业的第二调优方案为:基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估,其具体评估过程如图4所示,此处不再累述。
在另一实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的Hadoop最优参数评估方法中的步骤。此处不再累述Hadoop最优参数评估方法的具体实施过程。
在另一实施例中,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的Hadoop最优参数评估方法中的步骤。此处不再累述Hadoop最优参数评估方法的具体实施过程。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种Hadoop最优参数评估方法,其特征在于,包括:
接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;
根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数并输出至Hadoop集群服务器;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案;
针对单个作业的第一调优方案为:
基于Hadoop集群中历史资源的可用情况,预测单个map任务、reduce任务和shuffle任务的执行时间;
结合装箱算法的思想将map任务、reduce任务和shuffle任务填入可用资源中,预测得到整个作业的完成时间;
基于预测的作业完成时间与Hadoop参数之间的关系及当前作业类型、大小和可用资源,通过遗传算法迭代搜索最优解,输出一组使得作业完成时间最短的最优参数配置;
针对非单个作业的第二调优方案为:基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估;
基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估的过程为:
运用两段编码策略将染色体分为调度序列段和参数配置段,适应度函数为该染色体的当前价值和调度序列的前景值分别与相应系数相乘后的累加和;
依次进行交叉操作和变异操作;且在每次交叉和变异之前都分别计算每条染色体遗传前景值和变异前景值,以此计算染色体被选中的概率;
计算整个父子染色体种群中每个染色体的适应度函数,按适应度函数值筛选染色体,最终输出最优调度序列和最优参数配置,使得整个作业序列的完成时间最短。
2.如权利要求1所述的Hadoop最优参数评估方法,其特征在于,根据Hadoop集群中历史资源的可用情况,用随机森林预测单个map任务、reduce任务和shuffle任务的执行时间。
3.如权利要求1所述的Hadoop最优参数评估方法,其特征在于,基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估之前,还包括:
初始化生成一批染色体,初始种群的遗传前景和变异前景都相等;其中,遗传前景用于评估染色体交叉产生的子个体的质量;变异前景用于评估染色体变异产生的子个体的质量。
4.一种Hadoop最优参数评估装置,其特征在于,包括:
作业接收模块,其用于接收客户端传送来的作业,构建作业序列,确定作业序列中作业数量;
参数评估模块,其用于根据作业序列中作业数量,从方案数据库内调取相匹配的调优方案来评估Hadoop参数,得到所有作业完成时间最短的Hadoop最优配置参数;其中,方案数据库内预存有针对单个作业的第一调优方案和针对非单个作业的第二调优方案;
针对单个作业的第一调优方案为:
基于Hadoop集群中历史资源的可用情况,预测单个map任务、reduce任务和shuffle任务的执行时间;
结合装箱算法的思想将map任务、reduce任务和shuffle任务填入可用资源中,预测得到整个作业的完成时间;
基于预测的作业完成时间与Hadoop参数之间的关系及当前作业类型、大小和可用资源,通过遗传算法迭代搜索最优解,输出一组使得作业完成时间最短的最优参数配置;
针对非单个作业的第二调优方案为:基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估;
基于两段式编码的强化遗传算法来对调度序列和Hadoop参数进行评估的过程为:
运用两段编码策略将染色体分为调度序列段和参数配置段,适应度函数为该染色体的当前价值和调度序列的前景值分别与相应系数相乘后的累加和;
依次进行交叉操作和变异操作;且在每次交叉和变异之前都分别计算每条染色体遗传前景值和变异前景值,以此计算染色体被选中的概率;
计算整个父子染色体种群中每个染色体的适应度函数,按适应度函数值筛选染色体,最终输出最优调度序列和最优参数配置,使得整个作业序列的完成时间最短。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的Hadoop最优参数评估方法中的步骤。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-3中任一项所述的Hadoop最优参数评估方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687234.3A CN111858003B (zh) | 2020-07-16 | 2020-07-16 | 一种Hadoop最优参数评估方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687234.3A CN111858003B (zh) | 2020-07-16 | 2020-07-16 | 一种Hadoop最优参数评估方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858003A CN111858003A (zh) | 2020-10-30 |
CN111858003B true CN111858003B (zh) | 2021-05-28 |
Family
ID=72983154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010687234.3A Active CN111858003B (zh) | 2020-07-16 | 2020-07-16 | 一种Hadoop最优参数评估方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858003B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048027B (zh) * | 2021-10-21 | 2022-05-13 | 中国科学技术大学 | 一种应用于超算集群调度的作业运行参数优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN106202431A (zh) * | 2016-07-13 | 2016-12-07 | 华中科技大学 | 一种基于机器学习的Hadoop参数自动调优方法及系统 |
US20170039236A1 (en) * | 2015-08-06 | 2017-02-09 | International Business Machines Corporation | Vertical tuning of distributed analytics clusters |
CN108647135A (zh) * | 2018-05-07 | 2018-10-12 | 西南交通大学 | 一种基于微操作的Hadoop参数自动调优方法 |
US10339131B1 (en) * | 2016-06-10 | 2019-07-02 | Hortonworks, Inc. | Fault prevention |
-
2020
- 2020-07-16 CN CN202010687234.3A patent/CN111858003B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
US20170039236A1 (en) * | 2015-08-06 | 2017-02-09 | International Business Machines Corporation | Vertical tuning of distributed analytics clusters |
US10339131B1 (en) * | 2016-06-10 | 2019-07-02 | Hortonworks, Inc. | Fault prevention |
CN106202431A (zh) * | 2016-07-13 | 2016-12-07 | 华中科技大学 | 一种基于机器学习的Hadoop参数自动调优方法及系统 |
CN108647135A (zh) * | 2018-05-07 | 2018-10-12 | 西南交通大学 | 一种基于微操作的Hadoop参数自动调优方法 |
Non-Patent Citations (2)
Title |
---|
Context-aware scheduling in MapReduce: a compact review;Muhammad Idris等;《CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE》;20151230;全文 * |
Hadoop平台性能预测与调优方法研究;李耘书;《中国优秀硕士学位论文全文数据库》;20200315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111858003A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shen et al. | Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems | |
CN108989098B (zh) | 一种混合云环境面向时延优化的科学工作流数据布局方法 | |
CN108255613B (zh) | 一种基于图着色的soa系统资源管理方法 | |
CN109255513A (zh) | 一种电力通信网现场运维工单调度方法 | |
CN110008023B (zh) | 基于遗传算法的云计算系统预算约束随机任务调度方法 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN113821318A (zh) | 一种物联网跨域子任务组合协同计算方法及系统 | |
CN111858003B (zh) | 一种Hadoop最优参数评估方法及装置 | |
Djedović et al. | Optimization of business processes by automatic reallocation of resources using the genetic algorithm | |
CN112884368B (zh) | 高端装备交货时间与延迟最小的多目标调度方法及系统 | |
Ordóñez et al. | Genetic Approach for Optimizing Ensembles of Classifiers. | |
Thant et al. | Multiobjective level-wise scientific workflow optimization in IaaS public cloud environment | |
Nguyen et al. | Topology-aware sparse allreduce for large-scale deep learning | |
CN113220437B (zh) | 一种工作流多目标调度方法及装置 | |
CN113127167B (zh) | 一种基于改进遗传算法的异构资源智能并行调度方法 | |
Zhao et al. | CM-GCN: A distributed framework for graph convolutional networks using cohesive mini-batches | |
Sun et al. | Parallel factorization machine recommended algorithm based on mapreduce | |
Zoteva et al. | Generalized net model of artificial bee colony optimization algorithm | |
CN114595914B (zh) | 一种面向云环境的工作流调度方法及系统 | |
Umbarkar et al. | 0/1 knapsack problem using diversity based dual population genetic algorithm | |
CN111813525A (zh) | 一种异构系统工作流调度方法 | |
Mayilvaganan et al. | Performance comparison of roulette wheel selection and steady state selection in genetic nucleotide sequence | |
Gjylapi et al. | The Genetic Algorithm for finding the maxima of singlevariable functions | |
Hadji et al. | Parallel artificial immune system for the constrained graph list multicolouring problem | |
CN116401037B (zh) | 一种基于遗传算法的多任务调度方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |