CN109376012A - 一种针对异构环境的基于Spark的自适应任务调度方法 - Google Patents
一种针对异构环境的基于Spark的自适应任务调度方法 Download PDFInfo
- Publication number
- CN109376012A CN109376012A CN201811179011.5A CN201811179011A CN109376012A CN 109376012 A CN109376012 A CN 109376012A CN 201811179011 A CN201811179011 A CN 201811179011A CN 109376012 A CN109376012 A CN 109376012A
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- particle
- time
- scheduling
- 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.)
- Pending
Links
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种针对异构环境的基于Spark的自适应任务调度方法,该方法包括:步骤1:数据采集;步骤2:构建任务执行时间预测模型;步骤3:任务调度,其中,任务调度主要通过采样执行、生成执行时间矩阵、基于PSO算法搜索调度方案以及任务迁移加速实现。通过任务执行时间预测模型开发出一种Spark平台的任务调度算法,该调度算法基于PSO算法搜索出一种最优的调度方案,并在运行过程中动态调整以推进执行进度,由于综合考虑了任务数据量和资源性能,并采用静态任务分配和动态调整相结合的方法,达到自适应调整调度方法的效果。
Description
技术领域
本发明属于云计算、大数据处理技术领域,具体涉及并行计算框架Spark中的一种任务调度方法。
背景技术
Spark是一个快速、通用的大数据处理引擎,根据官网发布的实验结果可知,当内存充足时,Spark的运行速度比Hadoop MapReduce快100倍,即使内存不足,溢出到磁盘时,也快上10倍。这得益于Spark先进的DAG执行引擎,支持无环数据流和内存计算。
Spark之上的所有作业,最终都会以Job形式提交到Spark Core中进行调度执行,Job本质是弹性分布式数据集(RDD)的依赖图(DAG),DAG会从宽依赖的地方分开形成一个个Stage,一个Stage对应一个Task集合,称之为TaskSet,一个Task对应处理一个RDD分区,所以底层任务调度的工作就是调度TaskSet中的任务到Worker节点上去执行,并监控其运行状况。由于Stage之间通常是串行关系,如果一个TaskSet中的任务滞后,会导致对应的Stage滞后,进而导致整个Job的进度滞后。
对一个TaskSet进行任务调度,是一种独立任务调度,因为TaskSet中的每一个Task处理独立的数据分区,互相之间无依赖和通信。
理想情况下,RDD中的各个分区(Partition)的数据量是均匀的,而实际中,通常只有不存在父Stage的RDD满足这一点,因为它们没有经历Shuffle重分区,经过Shuffle阶段后各个分区的数据量会有明显差异,这是由于数据表中属性值分布不均造成的,这种现象被称为数据倾斜。数据倾斜是不可避免的,当出现数据倾斜时,那些数据量较大的分区,需要消耗更长的时间来处理。
对于任务调度,Spark默认采用的是一种基于数据本地化的延迟调度算法,该方法是从Hadoop MapReduce借鉴而来,其思想很简单,认为通常情况下,相比于CPU处理速率和磁盘I/O速率,网络传输的速率是缓慢的,因此应该尽量减少数据的网络传输,即尽量把任务调度到输入数据所在位置,或者说调度到拥有输入数据比例较大的位置,这个位置被称为任务的优先位置。但是这一点经常无法满足,因为节点资源有限,当任务无法立即调度到优先位置执行时,Spark会选择延迟等待一段时间,当超过等待时间仍然无法调度到优先位置时,则降低任务的数据本地化要求,即调度到其它位置去执行。
Spark的任务调度算法简单有效,但其延迟等待时长配置为一个固定值,无法自适应的调整调度策略,在数据倾斜或资源性能异构的环境中,存在很大的优化空间。通过改进任务调度算法,可以大大缩短Job的完成时间,因此需要开发更有效的任务调度算法。
发明内容
有鉴于此,本发明的目的在于提供一种更有效的任务调度算法,以缩短Spark Job的完成时间,采用的技术方案总体上包括以下步骤:
1)数据采集
这一步骤是采集Spark集群任务执行日志,日志由多条任务记录组成,每一条记录包含影响任务执行时间的变量值和实际执行时间,影响任务执行时间的变量主要包括数据量、任务复杂度和节点的性能指标。
2)构建任务执行时间预测模型
根据上一步骤采集到的任务执行日志数据,生成训练数据集;
然后设置用于回归预测任务执行时间的RBF神经网络的网络结构;
采用训练数据集对所设置的RBF神经网络进行深度学习训练,得到任务执行时间预测模型。
3)采样执行
在应用所构建的任务执行时间预测模型对任务执行时间进行预测时,由于无法预先知道任务输出的数据量,所以先要对输入数据进行采样得到采样数据(即小部分数据),然后将采样数据输入执行得到输出数据量,由输出数据量和输入数据量的比值可得任务的数据转化率,由数据转化率可以得到RDD每一个分区对应任务的输出数据量。
4)生成执行时间矩阵
在任务调度算法执行前,需要生成任务-资源执行时间矩阵,任务集合定义为Stask={t1,t2,...,tn},资源集合定义为Sresource={r1,r2,...,rm},对于一个任务ti和资源rj,可以根据任务执行时间预测模型预测出任务执行时间,由此生成的执行时间矩阵matrix(任务-资源执行时间矩阵)的大小为n×m,第i行j列的值matrix[i][j]即任务ti调度到资源rj上的预测执行时间。即生成的任务-资源执行时间矩阵用于表征每个待调度任务在每个能调度的资源上的预测执行时间。
5)基于PSO算法搜索调度方案
该步骤基于PSO(粒子群优化)算法搜索出一种最优的任务调度方案,即使得任务总的完成时间最短的方案,其中,本发明对粒子种群(粒子群)初始化方式优选半随机的方式。
其中,PSO算法迭代搜索过程包括下列步骤:
5-1:将任务调度方案编码为粒子的位置信息,初始化粒子群;
5-2:基于所述任务-资源执行时间矩阵计算每一个粒子对应的调度方案的的最后一个完成任务的资源的总执行时间,并将所述所述总执行时间的倒数作为每个粒子的适应度;所述总执行时间等于分配给所述最后一个完成任务的资源的所有任务的预测执行时间之和;
5-3:基于当前每个粒子的适应度计算个体最优位置和粒子群的全局最优位置;
5-4:判断是否满足预设的迭代搜索条件(达到预设的迭代次数或者误差足够好,即不超过误差阈值),若是,则将当前的全局最优位置作为PSO算法的迭代搜索结果;否则对每个粒子的速度和位置进行更新后,继续执行步骤5-2。
6)任务迁移加速
由于任务执行时间预测有误差,PSO算法搜索出的调度方案效果也会有偏差,因此本发明采用一种任务迁移加速策略作为补充。
任务迁移加速策略在有空闲资源时(即资源完成了所有分配给它的任务)启动,思路是选取当前最后一个完成分配任务的资源,遍历它的未完成任务,尝试将未完成任务迁移到当前空闲的资源上执行,如果迁移后整体的完成时间会得到缩短,则执行迁移,已经迁移过的任务要跳过,而如果尝试迁移所有任务后仍然无法缩短整体的完成时间,则算法结束。
综上,由于采用了上述技术方案,本发明的有益效果为:本发明采用RBF神经网络构建任务执行时间预测模型,基于任务执行时间预测模型实现对Spark平台的任务调度,该调度方案首先基于PSO算法搜索出一种最优的调度方案,然后在运行过程中动态调整以推进执行进度,由于该调度方案综合考虑了任务数据量和资源性能,又采用静态任务分配和动态调整相结合的方法,达到自适应调整调度方案的效果,因此在数据倾斜并且集群节点性能异构的环境中能取得很好的性能表现。
附图说明
图1为本发明整体技术方案的模块示意图。
图2为本发明采用的RBF神经网络的结构示意图。
图3为本发明采用的任务调度算法的实现流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
本发明整体技术方案的模块示意图如图1所示,其核心的任务调度算法如图3所示。下面结合附图对本发明每一步骤的具体实施方式加以说明。
S1.数据采集。这一步骤由附图1中的数据采集模块实现,实施方式是更改Spark源代码,插入监听代码,采集任务执行日志。具体包括步骤S11~S12:
S11.插入监听代码。数据采集通过在Spark源码中插入监听代码来实现,具体地,任务的输入数据特征通过MapOutputTracker(Spark中的Map任务输出跟踪器)得到,任务的复杂度由DAG图(Directed Acyclic Graph,无回路有向图)得到,集群节点的性能指标通过用户(Worker)得到,而任务实际执行时间在任务完成时的回调中捕获到。
S12.采集任务执行日志。为了使训练后的任务执行时间预测模型具有更强的泛化能力,在采集执行日志时,运行的Job特征尽量覆盖较大的空间,即数据量各异,算子逻辑各异。日志由多条任务记录组成,每一条记录主要包含的数据属性为:输入数据总大小(Sizetotal)、输入数据记录数(Numbertotal)、远程数据量(Sizeremote)、本地数据量(Sizelocal)、任务输出的数据量(Sizeout)、任务复杂度(Complexity)、执行任务的节点的性能指标(MIPS、DiskBandWidth、NetBandWidth)、任务实际的执行时间(t),其中MIPS表示CPU单核每秒处理的指令数(单位:百万),DiskBandWidth表示磁盘的带宽,NetBandWidth表示网络传输的带宽。
其中任务复杂度由Spark数据操作算子的复杂度决定,本发明经过执行时间的统计,为每一种数据操作算子赋予了一个复杂度权重,任务的复杂度等于其所有数据操作算子的权重之和,公式如下所示:
其中,n为任务的算子序列长度,weighti即第i个算子的权重。例如,一个任务的操作算子序列为[join,filter,map],则其复杂度为weightjoin+weightfilter+weightmap。
S2.构建任务执行时间预测模型。本步骤由附图1中的预测模型模块实现,即根据步骤S1采集到的任务执行日志数据,生成训练数据集;然后确定用于回归预测的神经网络结构,采用训练数据集对其进行训练,得到最终的任务执行时间预测模型,具体包括步骤S21~S23:
S21.生成训练数据集。训练数据集的每一条样本包含步骤S1中的任务执行时间影响因素和实际的任务执行时间,其中任务执行时间影响因素相关变量构成模型的输入向量,实际的任务执行时间为目标变量。
S22.确定神经网络结构。本发明采用RBF(径向基函数)神经网络模型进行任务执行时间的回归预测,网络输入层神经元的个数即任务执行时间影响因素相关变量的个数,而输出层神经元的个数为1,因为只需要预测执行时间这个单一变量,中间隐藏层神经元采用的激活函数为高斯函数。本具体实施方式所以采用的神经网络结构的结构如附图2所示。
神经网络的输出可由如下公式表示:
其中,x为输入向量,K为隐藏层神经元的个数,也称为基(base)的个数,ωi为隐藏层第i个神经元输出的权重,ci和σi分别为隐藏层第i个神经元激活函数(高斯RBF)的中心点和宽度,b是偏置项(bias),e表示自然底数。
S23.模型训练。首先采用K-Means++算法(一种聚类算法)确定隐藏层神经元激活函数的中心ci和宽度σi,随机生成输出层的连接权重,然后采用梯度下降方法对所有参数进行迭代调整,达到设定的迭代次数后,模型训练结束。
S3.任务调度。本步骤由附图1中的任务调度模块实现,当通过步骤S2生成任务执行时间预测模型后,即可实施本步骤的任务调度算法,其详细执行过程如附图3所示。下面对其中的重要步骤S31~S34作详细阐述。
S31.采样执行。在应用模型对任务执行时间进行预测时,由于无法预先知道任务输出的数据量,所以先要对输入数据进行采样得到小部分数据,然后将采样数据输入执行得到输出数据量,由输出数据量和输入数据量的比值可得任务的数据转化率,由数据转化率可以得到RDD每一个分区对应任务的输出数据量。
数据采样通过Spark提供的sample方法实现,采样的数据量为5%。
数据转化率的计算方式如下:
其中,Sampleinput为采样数据总的大小,Sampleoutput为采样数据执行处理任务后输出的数据量大小,数据量大小都以占用的存储空间大小计算,单位为MB。
根据数据转化率,可以估算每一个任务输出的数据量,其公式如下:
Soutput=Spartition×ConvRate
其中,Spartition是任务处理的RDD分区的数据量大小。
S32.生成执行时间矩阵。在任务调度算法执行前,需要生成任务-资源执行时间矩阵,具体地,任务集合定义为Stask={t1,t2,...,tn},资源集合定义为Sresource={r1,r2,...,rm},对于一个任务ti和资源rj,可以根据任务执行时间预测模型预测出执行时间,因此生成的执行时间矩阵matrix的大小为n×m,第i行j列的值matrix[i][j]即任务ti调度到资源rj上执行的预测完成时间,矩阵形式如下所示:
由于执行时间矩阵是本发明的重要组成部分,后续步骤中会反复用到,下面举一个简单的示例对其进行说明。
例如,集群所拥有的CPU core数量总数为3,则执行资源集合的大小为3,每一个资源对应一个core,即Sresource={r1,r2,r3}={core1,core2,core3}。当前需要调度的任务数量也为3,分别为任务编号,从而产生任务集合Stask={t1,t2,t3}。最终生成的执行时间矩阵如下所示:
根据矩阵数据可以o(1)的时间复杂度获取到任务ti调度到资源rj上执行的预测完成时间,比如需要得到任务t2调度到资源r3上执行的时间,则直接随机读取矩阵第2行、第3列,其值为31。
S33.基于PSO算法搜索调度方案。该步骤基于PSO算法搜索出一种最优的调度方案,即使得任务总的完成时间最短,该方法具体分为步骤S331~S334:
步骤S331:粒子编码。将调度方案编码为粒子的位置信息,粒子位置信息的维度等于任务的个数,具体地,粒子位置信息编码为X=(x1,x2,...xn),其中维度d(d=1,...,n)的值xd表示的是任务d调度到资源xd上执行,因此其取值范围为1≤xd≤m。
例如,一个粒子的位置信息为:
3 | 1 | 2 | 3 |
其含义表示任务1和任务4调度到资源3上执行,任务2调度到资源1上执行,任务3调度到资源2上执行。同一个资源上的任务以串行的方式执行,即在资源3上任务1完成后方能启动任务4。
步骤S332:种群初始化。本发明对粒子种群初始化采用半随机的方式,第一个粒子的位置信息X1根据任务的优先位置生成,即每一个任务都分配到它的优先位置对应的资源上去执行,然后随机选取一个维度(任务),调整到随机选取的一个资源上,从而生成第二个粒子的位置信息X2,对第二个粒子重复该操作以生成第三个粒子的位置信息X3,如此迭代完成粒子种群的初始化。
例如,第i个粒子的位置为Xi=(xi1,xi2,…,xin),则生成第i+1个粒子的方式如下:
Xi+1=Xi
Xi+1[randtask]=randresource
步骤S333:计算粒子适应度。因为整体完成时间越短,则粒子适应度应该越高,所以取粒子的适应度为整体完成时间的倒数,其形式如下:
其中makespan等于最后一个完成任务的资源总的执行时间,其总的执行时间等于分配给它的所有任务的执行时间之和,因此可得makespan的计算表达式如下:
其中,Kj为分配给资源j的任务数量,tjk为分配给资源j的第k个任务的预测执行时间。
步骤S334:迭代搜索最优调度方案。粒子的初始速度信息为随机生成,然后根据PSO算法的流程迭代搜索最优调度方案,由于基本的PSO算法粒子为连续型编码,而任务调度方案中为离散编码,因此对位置更新公式做了一定调整,其计算方式如下:
xij(t+1)=round(xij(t)+υij(t+1))
其中,t表示种群的第t代,i表示第i个粒子,j表示粒子第j维,υij是粒子i维度j的速度,xij是粒子i维度j的位置。而round()是四舍五入函数。
S34.任务迁移加速。由于任务执行时间预测有误差,PSO算法搜索出的调度方案效果也会有偏差,因此本发明采用一种任务迁移加速策略作为补充。
任务迁移加速策略在有空闲资源时(即资源完成了所有分配给它的任务)启动,思路是选取当前最后一个完成分配任务的资源,遍历它的未完成任务,尝试将未完成任务迁移到当前空闲的资源上执行,如果迁移后整体的完成时间会得到缩短,则执行迁移,已经迁移过的任务要跳过,而如果尝试迁移所有任务后仍然无法缩短整体的完成时间,则算法结束。具体步骤如S341~S346所示:
步骤S341:将当前空闲资源分别按照硬件配置计算性能评分,然后将空闲资源列表listidle按照评分降序排序,空闲资源的性能评分计算公式如下,
sorce=ωcpu×MIPS+ωdisk×DiskBandWidth+ωnet×NetBandWidth
其中MIPS表示CPU单核每秒处理的指令数(单位:百万),DiskBandWidth表示磁盘的带宽,NetBandWidth表示网络传输的带宽,ωcpu为CPU性能权重,ωdisk为硬盘性能所占的权重,ωnet为网络性能所占的权重,本发明中分别取值为0.7、0.2、0.1。
步骤S342:对于非空闲的资源,根据执行时间矩阵和任务的起始执行时刻,可以得到其任务完成时刻,将非空闲资源列表listrunning按照完成时刻降序排序,即最后完成的排在最前面。
步骤S343:取listrunning排在首位的资源,遍历其上未完成的任务,对于每一个任务,首先尝试该任务的优先位置,到Node级别为止,如果优先位置没有空闲资源,则转步骤S344。
根据执行时间矩阵得到在优先位置的执行时间,然后计算迁移该任务到优先位置后整体的完成时间,如果整体进度得到推进,则将该任务重新分配给优先位置的资源(当前任务迁移到优先位置成功),更新任务、资源列表并转步骤S345;若当前遍历任务的整体进度未能得到推进,则跳过当前遍历任务(不对其进行迁移),直接转步骤S345。
如果遍历完listrunning排在首位的资源上的所有未完成任务,均不存在整体进度得到推进的情况,则转步骤S346。
步骤S344:取listidle排在首位的资源,根据执行时间矩阵得到当前任务在该资源上的执行时间,然后计算迁移该任务到该资源后整体的完成时间,如果整体进度得到推进,则将该任务重新分配给该资源,更新任务、资源列表并转步骤S345;若当前遍历任务的整体进度未能得到推进,则跳过当前遍历任务,直接转步骤S345。
如果遍历完listrunning排在首位的资源上的所有未完成任务,均不存在整体进度得到推进的情况,则转步骤S346。
步骤S345:如果listidle为空,则转步骤S346,否则转步骤S343。
步骤S346:等待listidle新增资源,如果所有任务已完成,则算法结束,否则跳转到步骤S341。
由于预测存在误差,在判断整体进度是否得到推进时设置了一个阈值δ,当缩短的完成时间超过阈值δ时才判定为推进成功。
综上所述,本发明采用RBF神经网络构建任务执行时间预测模型,基于任务执行时间预测模型开发出一种Spark平台的任务调度算法,该调度算法首先基于PSO算法搜索出一种最优的调度方案,然后在运行过程中动态调整以推进执行进度,由于该调度算法综合考虑了任务数据量和资源性能,又采用静态任务分配和动态调整相结合的方法,达到自适应调整调度方案的效果,因此在数据倾斜并且集群节点性能异构的环境中能取得很好的性能表现。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上所述仅为本发明的实施例而己,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种用于异构环境的基于Spark平台的自适应任务调度方法,其特征在于,包括以下步骤:
S1)数据采集:
采集Spark集群任务执行日志,所述任务执行日志由多条任务记录组成,每一条任务记录包含影响任务执行时间的变量值和实际执行时间;
S2)构建任务执行时间预测模型:
根据所述任务执行日志,生成训练数据集;
设置用于回归预测任务执行时间的径向基函数RBF神经网络的网络结构;
采用所述训练数据集对所设置的RBF神经网络进行深度学习训练,得到任务执行时间预测模型;
S3)任务调度处理:
S301:基于能调度的资源集和待调度任务集,根据所述任务执行时间预测模型生成任务-资源执行时间矩阵,所述任务-资源执行时间矩阵用于表征每个待调度任务在每个能调度的资源上的预测执行时间;
S302:采用基于粒子群优化PSO算法迭代搜索最优任务调度方案:
S302-1:将任务调度方案编码为粒子的位置信息,初始化粒子群;
S302-2:基于所述任务-资源执行时间矩阵计算每一个粒子对应的调度方案的的最后一个完成任务的资源的总执行时间,并将所述总执行时间的倒数作为每个粒子的适应度;所述总执行时间等于分配给所述最后一个完成任务的资源的所有任务的预测执行时间之和;
S302-3:基于当前每个粒子的适应度计算个体最优位置和粒子群的全局最优位置;
S302-4:判断是否满足预设的迭代搜索条件,若是,则将当前的全局最优位置作为PSO算法的迭代搜索结果;否则对每个粒子的速度和位置进行更新后,继续执行步骤S302-2。
2.据权利要求1所述的任务调度方法,其特征在于,所述步骤S302中,
粒子编码方式为:将任务调度方案编码为粒子的位置信息X=(x1,x2,...,xn),其中,所述粒子位置信息的维度等于待调度任务数n,维度d的值xd表示将待调度任务d调度到资源xd上执行,并且1≤xd≤m,m为资源集合大小,其中d=1,...,n;
粒子的位置更新公式为:xij(t+1)=round(xij(t)+υij(t+1)),其中t表示种群的第t代,i表示第i个粒子,j表示粒子的第j维,υij表示粒子i的维度j的速度,粒子速度的初始值为预设值,xij是粒子i的维度j的位置,函数round()用于计算输入参数四舍五入整数值。
3.据权利要求1所述的任务调度方法,其特征在于,所述步骤S1)中,采集Spark集群任务执行日志的方式为:通过在Spark源码中插入监听代码实现。
4.权利要求1所述的任务调度方法,其特征在于,所述步骤S2)中,设置RBF神经网络的网络结构具体包括以下步骤:
将所述训练数据集中的任务执行时间的变量值构成执行时间预测模型的输入向量,实际执行时间作为执行时间预测模型的目标变量;
所述RBF神经网络的输入层的神经元的个数为任务执行时间的变量值的个数,输出层的神经元的个数为1;中间隐藏层的神经元采用的激活函数为高斯函数其中,x为任务执行时间的变量值组成的输入向量,K为隐藏层神经元的个数,ωi为隐藏层第i个神经元输出的权重,ci和σi分别为隐藏层第i个神经元激活函数的中心点和宽度,b是偏置项。
5.根据权利要求4所述的任务调度方法,其特征在于,对RBF神经网络的深度学习训练具体为:
采用K-Means++算法确定隐藏层第i个神经元激活函数的中心点ci和宽度σi;
随机生成隐藏层第i个神经元输出的权重ωi;
采用梯度下降方法对参数ci、σi、ωi和b进行迭代调整,达到设定的迭代次数后,模型训练结束,得到任务执行时间预测模型。
6.根据权利要求4所述的任务调度方法,其特征在于,步骤S3)中,在生成任务-资源执行时间矩阵时,待调度任务的输出数据量的确定方式为:
对任务实际运行时的输入数据进行采样,将采样的输入数据执行得到输出数据量,由所述输出数据量和输入数据量的比值得到任务的数据转化率,并由数据转化率得到弹性分布式数据集RDD每一个分区对应任务的输出数据量。
7.根据权利要求2所述的任务调度方法,其特征在于,所述步骤S302中,
粒子群初始化方式为:第一个粒子的位置信息X1根据所述任务-资源执行时间矩阵选择待调度任务的优先位置生成,即每一个待调度任务都分配到它的优先位置对应的资源上去执行,然后随机选取一个待调度任务,调整到随机选取的一个资源上,从而生成第二个粒子的位置信息X2,对第二个粒子重复上述操作以生成第三个粒子的位置信息X3,如此迭代完成粒子种群的初始化。
8.根据权利要求1至7中任一项所述的任务调度方法,其特征在于,所述步骤S3还包括步骤S303;
步骤S303:对待调度任务的迁移加速处理:当存在空闲资源时,选取当前粒子的最后一个完成待调度任务的资源,遍历该资源的未完成待调度任务,将未完成待调度任务迁移到当前空闲的资源上执行,若迁移后所对应的调度方案的总预测执行时间会比迁移前缩短,则执行迁移,且在迁移时跳过已经迁移过的待调度任务;否则,放弃当前迁移。
9.根据权利要求8所述的任务调度方法,其特征在于,所述迁移加速处理具体包括下列步骤:
S303-1:计算当前各空闲资源的性能评分,并对所有空闲资源按性能评分降序排序得到空闲资源列表listidle;
空闲资源的性能评分为:sorce=ωcpu×MIPS+ωdisk×DiskBandWidth+ωnet×NetBandWidth,其中ωcpu为预设的CPU性能权重,MIPS表示CPU性能,ωdisk为预设的硬盘性能权重,DiskBandWidth表示硬盘性能,ωnet为预设的网络性能权重,NetBandWidth表示网络性能;
根据所述任务-资源执行时间矩阵,待调度任务的起始执行时刻计算非空闲的资源上的待调度任务的完成时刻;并对所有非空闲的资源按完成时刻降序排序得到非空闲资源列表listrunning;
S303-2:取所述非空闲资源listrunning的首个资源,并遍历该资源上所有未完成的待调度任务并进行迁移处理:
若当前遍历的任务的优先位置存在空闲资源,则根据所述任务-资源执行时间矩阵得到当前任务在优先位置的预测执行时间,计算迁移到当前优先位置后对应的调度方案的总预测执行时间,若迁移后的总预测执行时间与迁移前的调度方案的总预测执行时间的缩短量大于预设阈值,则将当前当前任务重新分配到优先位置上;并更新任务、资源列表信息;否则跳过当前遍历的任务;
若当前遍历的任务的优先位置不存在空闲资源,且空闲资源上listidle不为空,则将当前任务迁移到空闲资源上listidle的首个资源,并计算迁移后对应的调度方案的总预测执行时间,若迁移后的总预测执行时间与迁移前的调度方案的总预测执行时间的缩短量大于预设阈值,则将当前任务重新分配到空闲资源上listidle的首个资源上;并更新任务、资源列表信息;否则跳过当前遍历的任务。
10.根据权利要求9所述的任务调度方法,其特征在于,所述CPU性能权重ωcpu优选取值为0.7,所述硬盘性能权重ωdisk优选取值为0.2,所述网络性能权重ωnet优选取值为0.1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811179011.5A CN109376012A (zh) | 2018-10-10 | 2018-10-10 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811179011.5A CN109376012A (zh) | 2018-10-10 | 2018-10-10 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109376012A true CN109376012A (zh) | 2019-02-22 |
Family
ID=65403379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811179011.5A Pending CN109376012A (zh) | 2018-10-10 | 2018-10-10 | 一种针对异构环境的基于Spark的自适应任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376012A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109702A (zh) * | 2019-05-16 | 2019-08-09 | 福州大学 | 基于代码分析的Android计算迁移在线决策方法 |
CN110262896A (zh) * | 2019-05-31 | 2019-09-20 | 天津大学 | 一种面向Spark系统的数据处理加速方法 |
CN110263869A (zh) * | 2019-06-25 | 2019-09-20 | 咪咕文化科技有限公司 | 一种Spark任务的时长预测方法及装置 |
CN110688207A (zh) * | 2019-09-05 | 2020-01-14 | 烽火通信科技股份有限公司 | 一种嵌入式任务调度方法及系统 |
CN110737529A (zh) * | 2019-09-05 | 2020-01-31 | 北京理工大学 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
CN110796243A (zh) * | 2019-11-27 | 2020-02-14 | 重庆大学 | 一种连续型运行监测数据模拟发生方法及装置 |
CN110825522A (zh) * | 2019-10-31 | 2020-02-21 | 武汉联图时空信息科技有限公司 | Spark参数自适应优化方法及系统 |
CN110990135A (zh) * | 2019-11-28 | 2020-04-10 | 中国人民解放军国防科技大学 | 基于深度迁移学习的Spark作业时间预测方法和装置 |
CN111240844A (zh) * | 2020-01-13 | 2020-06-05 | 星环信息科技(上海)有限公司 | 一种资源调度方法、设备及存储介质 |
CN111506659A (zh) * | 2020-04-20 | 2020-08-07 | 杭州数澜科技有限公司 | 一种数据同步的方法、系统和介质 |
CN111813523A (zh) * | 2020-07-09 | 2020-10-23 | 北京奇艺世纪科技有限公司 | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 |
CN111930476A (zh) * | 2019-05-13 | 2020-11-13 | 百度(中国)有限公司 | 一种任务调度方法、装置及电子设备 |
CN112052081A (zh) * | 2020-08-13 | 2020-12-08 | 烽火通信科技股份有限公司 | 一种任务调度方法、装置及电子设备 |
CN112114972A (zh) * | 2020-09-29 | 2020-12-22 | 中国银行股份有限公司 | 数据倾斜的预测方法及装置 |
CN112329997A (zh) * | 2020-10-26 | 2021-02-05 | 国网河北省电力有限公司雄安新区供电公司 | 电力需求负荷预测方法及系统、电子设备和存储介质 |
CN112473140A (zh) * | 2020-12-14 | 2021-03-12 | 网易(杭州)网络有限公司 | 任务处理的方法及装置、电子设备、存储介质 |
CN113157453A (zh) * | 2021-04-22 | 2021-07-23 | 西北大学 | 一种基于任务复杂度的高能效目标检测任务动态调度方法 |
CN113222300A (zh) * | 2021-06-15 | 2021-08-06 | 中国银行股份有限公司 | 产品改造数据的处理方法、装置、可读介质以及设备 |
CN113778646A (zh) * | 2021-08-22 | 2021-12-10 | 物产中大公用环境投资有限公司 | 一种基于执行时间预测的任务层级调度方法及装置 |
CN115473901A (zh) * | 2022-11-15 | 2022-12-13 | 四川汉唐云分布式存储技术有限公司 | 一种分布式算力集群智慧调度方法、装置及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
CN108009023A (zh) * | 2017-11-29 | 2018-05-08 | 武汉理工大学 | 混合云中基于bp神经网络时间预测的任务调度方法 |
US20180144251A1 (en) * | 2016-11-23 | 2018-05-24 | Institute For Information Industry | Server and cloud computing resource optimization method thereof for cloud big data computing architecture |
CN108229686A (zh) * | 2016-12-14 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 模型训练、预测方法、装置、电子设备及机器学习平台 |
-
2018
- 2018-10-10 CN CN201811179011.5A patent/CN109376012A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
US20180144251A1 (en) * | 2016-11-23 | 2018-05-24 | Institute For Information Industry | Server and cloud computing resource optimization method thereof for cloud big data computing architecture |
CN108229686A (zh) * | 2016-12-14 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 模型训练、预测方法、装置、电子设备及机器学习平台 |
CN108009023A (zh) * | 2017-11-29 | 2018-05-08 | 武汉理工大学 | 混合云中基于bp神经网络时间预测的任务调度方法 |
Non-Patent Citations (6)
Title |
---|
DANIEL CHILLET等: "A Neural Network Model for Real-Time Scheduling on Heterogeneous Soc Architectures", 《2007 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS》 * |
叶春晓等: "基于改进遗传算法的网格任务调度研究", 《计算机科学》 * |
宫华等: "基于离散粒子群算法的应急救灾物资配送问题", 《沈阳理工大学学报》 * |
罗娇敏: "基于自适应遗传算法的网格任务调度研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
袁正午等: "基于改进粒子群算法的云资源调度", 《计算机工程与设计》 * |
陈君: "面向警务数据处理的Spark性能优化研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930476A (zh) * | 2019-05-13 | 2020-11-13 | 百度(中国)有限公司 | 一种任务调度方法、装置及电子设备 |
CN111930476B (zh) * | 2019-05-13 | 2024-02-27 | 百度(中国)有限公司 | 一种任务调度方法、装置及电子设备 |
CN110109702A (zh) * | 2019-05-16 | 2019-08-09 | 福州大学 | 基于代码分析的Android计算迁移在线决策方法 |
CN110262896A (zh) * | 2019-05-31 | 2019-09-20 | 天津大学 | 一种面向Spark系统的数据处理加速方法 |
CN110263869A (zh) * | 2019-06-25 | 2019-09-20 | 咪咕文化科技有限公司 | 一种Spark任务的时长预测方法及装置 |
CN110263869B (zh) * | 2019-06-25 | 2021-06-08 | 咪咕文化科技有限公司 | 一种Spark任务的时长预测方法及装置 |
CN110737529A (zh) * | 2019-09-05 | 2020-01-31 | 北京理工大学 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
CN110688207A (zh) * | 2019-09-05 | 2020-01-14 | 烽火通信科技股份有限公司 | 一种嵌入式任务调度方法及系统 |
CN110688207B (zh) * | 2019-09-05 | 2022-03-11 | 烽火通信科技股份有限公司 | 一种嵌入式任务调度方法及系统 |
CN110737529B (zh) * | 2019-09-05 | 2022-02-08 | 北京理工大学 | 一种面向短时多变大数据作业集群调度自适应性配置方法 |
CN110825522A (zh) * | 2019-10-31 | 2020-02-21 | 武汉联图时空信息科技有限公司 | Spark参数自适应优化方法及系统 |
CN110796243A (zh) * | 2019-11-27 | 2020-02-14 | 重庆大学 | 一种连续型运行监测数据模拟发生方法及装置 |
CN110990135A (zh) * | 2019-11-28 | 2020-04-10 | 中国人民解放军国防科技大学 | 基于深度迁移学习的Spark作业时间预测方法和装置 |
CN111240844A (zh) * | 2020-01-13 | 2020-06-05 | 星环信息科技(上海)有限公司 | 一种资源调度方法、设备及存储介质 |
CN111506659A (zh) * | 2020-04-20 | 2020-08-07 | 杭州数澜科技有限公司 | 一种数据同步的方法、系统和介质 |
CN111813523A (zh) * | 2020-07-09 | 2020-10-23 | 北京奇艺世纪科技有限公司 | 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质 |
CN112052081A (zh) * | 2020-08-13 | 2020-12-08 | 烽火通信科技股份有限公司 | 一种任务调度方法、装置及电子设备 |
CN112052081B (zh) * | 2020-08-13 | 2022-06-03 | 烽火通信科技股份有限公司 | 一种任务调度方法、装置及电子设备 |
CN112114972B (zh) * | 2020-09-29 | 2023-09-26 | 中国银行股份有限公司 | 数据倾斜的预测方法及装置 |
CN112114972A (zh) * | 2020-09-29 | 2020-12-22 | 中国银行股份有限公司 | 数据倾斜的预测方法及装置 |
CN112329997A (zh) * | 2020-10-26 | 2021-02-05 | 国网河北省电力有限公司雄安新区供电公司 | 电力需求负荷预测方法及系统、电子设备和存储介质 |
CN112473140A (zh) * | 2020-12-14 | 2021-03-12 | 网易(杭州)网络有限公司 | 任务处理的方法及装置、电子设备、存储介质 |
CN113157453A (zh) * | 2021-04-22 | 2021-07-23 | 西北大学 | 一种基于任务复杂度的高能效目标检测任务动态调度方法 |
CN113222300A (zh) * | 2021-06-15 | 2021-08-06 | 中国银行股份有限公司 | 产品改造数据的处理方法、装置、可读介质以及设备 |
CN113778646A (zh) * | 2021-08-22 | 2021-12-10 | 物产中大公用环境投资有限公司 | 一种基于执行时间预测的任务层级调度方法及装置 |
CN113778646B (zh) * | 2021-08-22 | 2024-04-05 | 物产中大公用环境投资有限公司 | 一种基于执行时间预测的任务层级调度方法及装置 |
CN115473901A (zh) * | 2022-11-15 | 2022-12-13 | 四川汉唐云分布式存储技术有限公司 | 一种分布式算力集群智慧调度方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376012A (zh) | 一种针对异构环境的基于Spark的自适应任务调度方法 | |
CN113064879B (zh) | 数据库参数调整方法、装置及计算机可读存储介质 | |
CN111176832B (zh) | 基于内存计算框架Spark的性能优化和参数配置方法 | |
CN107239335B (zh) | 分布式系统的作业调度系统及方法 | |
CN111858009B (zh) | 基于迁移和强化学习的移动边缘计算系统任务调度方法 | |
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
CN107888669B (zh) | 一种基于深度学习神经网络的大规模资源调度系统及方法 | |
Huang et al. | Rlsk: a job scheduler for federated kubernetes clusters based on reinforcement learning | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
CN103345514A (zh) | 大数据环境下的流式数据处理方法 | |
CN102214213A (zh) | 一种采用决策树的数据分类方法和系统 | |
Gu et al. | A parallel computing platform for training large scale neural networks | |
Click et al. | Gradient boosting machine with h2o | |
CN111324630B (zh) | 基于mpi的神经网络架构搜索并行化方法和设备 | |
CN113037800B (zh) | 作业调度方法以及作业调度装置 | |
CN110825522A (zh) | Spark参数自适应优化方法及系统 | |
Liu et al. | A reinforcement learning based resource management approach for time-critical workloads in distributed computing environment | |
Gu et al. | Auto-tuning spark configurations based on neural network | |
CN107066328A (zh) | 大规模数据处理平台的构建方法 | |
CN113032367A (zh) | 面向动态负载场景的大数据系统跨层配置参数协同调优方法和系统 | |
CN113377503A (zh) | 一种协作式ai的任务调度方法、装置与系统 | |
Gümüş et al. | An investigation of F-Race training strategies for cross domain optimisation with memetic algorithms | |
CN110119268A (zh) | 基于人工智能的工作流优化方法 | |
CN108376180A (zh) | 影响大数据系统性能的关键参数查找方法及装置 | |
CN114327925A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190222 |