CN107273197A - 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法 - Google Patents

基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法 Download PDF

Info

Publication number
CN107273197A
CN107273197A CN201710448520.2A CN201710448520A CN107273197A CN 107273197 A CN107273197 A CN 107273197A CN 201710448520 A CN201710448520 A CN 201710448520A CN 107273197 A CN107273197 A CN 107273197A
Authority
CN
China
Prior art keywords
mrow
msub
individual
pop
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.)
Granted
Application number
CN201710448520.2A
Other languages
English (en)
Other versions
CN107273197B (zh
Inventor
杨新武
王碧瑾
王巧慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201710448520.2A priority Critical patent/CN107273197B/zh
Publication of CN107273197A publication Critical patent/CN107273197A/zh
Application granted granted Critical
Publication of CN107273197B publication Critical patent/CN107273197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法,包括基于正交实验改进的谱聚类遗传算法的过程;进行个体编码、初始化数据,并设定参数;进行正交种群初始化;对种群内的个体进行解码得到表现型空间,计算表现型空间个体的任务预测执行时间、本地性任务个数和机器负载,然后根据这三个值计算种群内个体的适应度值;在表现型空间对种群进行谱聚类;选择种群内个体参加遗传操作;对选择的个体进行正交交叉和变异操作;重复迭代直到得到最佳个体。本发明采用改进的遗传算法作为优化算法,同时以任务预测执行时间、本地性任务个数、机器负载三个因素作为参数进行优化求解。

Description

基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法
技术领域
本发明属于Hadoop平台的任务调度问题,特别是一种基于正交实验改进的谱聚类遗传算法的、新的Hadoop平台任务调度方法。
背景技术
由于现在的衣食住行和工作等越来越依赖于互联网,导致了互联网中数据的爆发式增长,而这些数据不仅仅是量级上的增长,在这些数据的背后隐藏着很多的信息,这些信息往往对某个企业乃至某个行业来说都是至关重要的。在这样的背景下开源大数据平台Hadoop成为了使用最广泛的大数据处理平台之一。
Hadoop平台中最关键的的一个环节便是根据任务对资源的需求控制任务执行顺序和资源使用的调度环节。这个环节直接关系到Hadoop平台的整体性能和系统资源的利用情况。Hadoop官方现在有三种调度算法FIFO、Capacity和Fair,但是FIFO只适合于单用户和集群负载比较小的情况,Capacity和Fair虽然是多用户的但都是根据配置文件来控制资源的资源使用,这需要配置大量的参数,这无疑加大了管理的难度并且在一个有几百台机器的异构集群中几乎是不可能的。其实Hadoop的任务调度过程是任务和TaskTracker的组合优化问题,而遗传算法适合于解决组合优化问题,所以有专家学者开始使用遗传算法解决Hadoop任务调度问题。朱宗斌等人提出了一种基于自适应调整交叉和变异操作的概率的遗传算法的Hadoop调度算法,但是他对任务本身只考虑了任务执行时间这一个约束条件并且并没有对遗传算子进行改进。徐肖等提出了一种基于分段编码遗传算法的Hadoop调度算法,但是他的适应度函数也只考虑了任务执行时间这一个约束条件。熊聪聪等人在云计算的背景下提出了一种以遗传算法为基础的调度模型,但是没有具体你描述如何构建编码所用的任务列表;李仲晓提出了一种基于遗传算法的Hadoop任务调度模型,但是其模型具有编码长度不能自适应等缺点,并且标准遗传算法有着搜索效率低和早熟收敛的缺点。
发明内容
本发明首先通过引入了2个参数:一次最少处理job个数MinJob和当一个大任务独占资源时最多可占用的资源比例SinglePercent并结合当前集群中可用的slot数目来建立Hadoop任务调度模型,并以任务预测执行时间、本地任务个数以及机器负载作为优化目标;然后使用正交实验改进谱聚类遗传算法提出基于正交实验改进的谱聚类遗传算法SOXGASC,并使用SOXGASC优化建立的Hadoop任务调度模型。
本发明首先是通过正交实验来改进谱聚类遗传算法,旨在使得初始个体更叫均匀地分布在解空间中,整个算法从更高水平开始收敛间接加快收敛速度,并通过正交交叉减少无效交叉。并采用基于正交实验改进的谱聚类遗传算法开发一种配置项很少、性能更好的Hadoop任务调度方法。
1.基于正交实验改进的谱聚类遗传算法(SOXGASC)
设种群规模为popsize,交叉概率为pc,变异概率为pm,聚类个数为k,则基于正交实验改进的谱聚类遗传算法(SOXGASC)的步骤如下
Step1.种群初始化,采用正交种群初始化产生初始种群initPop,并使得pop=initPop,gen=1。
Step2.判断是否满足停止进化的条件,如果不满足执行Step3,如果满足,执行Step7。
Step3.对pop进行谱聚类,并保存聚类结果。
Step4.使用轮盘赌方法从pop中选择一个个体indiv1,然后产生一个0-1之间的随机数p,如果p>pc,将indiv1直接遗传至种群popN中;否则的话,先获取indiv1的类别classid1,然后在pop中随机选择一个indivT,并获取indivT的类别classidT,使得classid1!=classidT,然后选择classidT类中适应度值最好的个体indiv2,让indiv1和indiv2两个个体进行正交交叉操作,并把新产生的个体放入popN中。此过程循环popsize次。
Step5.使用轮盘赌算法从popN中选择一个个体indiv,并产生一个0-1之间的随机浮点数p,如果p>pm,则把indiv直接遗传到种群popNM中,否则,让indiv进行变异操作,将变异后的个体放入popNM中。
Step6.使得pop=popNM,获取pop中的最优个体indivBest,并gen=gen+1。
Step7.结束进化,将pop中的最优个体indivBest解码后便是所寻最优解。
2.基于SOXGASC的Hadoop任务调度算法(SOXGASCFxNew)
设定有一个Hadoop集群,Hadoop集群中有p个TaskTracker,m个Job被提交到JobTracker,ttsL表示TaskTracker的列表,且ttsL={tts1,tts2,…,ttsp};JobQueue表示Job的队列,JobQueue={job1,job2,...jobm}。
本方法中的配置文件中只需要两个参数MinJob和SinglePercent,其中,MinJob:一次最少处理job个数,由用户配置文件实现,是一个大于1的整数;SinglePercent:当一个大任务独占资源时最多可占用的资源比例,由用户配置文件实现,是一个0-1之间的浮点数。
Step1.根据配置文件中的参数MinJob和SinglePercent以及JobQueue中的Job生成待调度的任务列表TaskQueue。
Step2.获取TaskTracker列表ttsL。
Step3.根据TaskQueue和ttsL构建任务预测执行时间矩阵ETC,任务本地性矩阵LTC以及机器负载列表loadList。
Step4.根据TaskQueue、ttsL以及种群规模popsize进行正交种群初始化,设当前代数为1。
Step5.令当前种群为pop,判断是否满足停止进化条件,如果满足执行Step10;如果不满足到Step6。
Step6.对pop中的染色体进行解码,解码后根据ETC矩阵、LTC矩阵、loadList求出每个染色体的预测执行时间timeExcute、本地性任务个数totalNumLocal、机器负载load,然后根据公式(1)求出pop中个体的距离度矩阵dis。
Step7.使得pop中的染色体两两相连构成一个有权无向图,pop中的染色体看作顶点,距离矩阵dis中的值作为边的权值,然后求出该矩阵的邻接矩阵即为相似度矩阵S,然后进行谱聚类,并对聚类结果进行保存。
Step8.对pop进行轮盘赌选出一个个体indiv1,然后随机生成一个0-1之间的浮点数p,如果p大于交叉概率pc,直接把选择出的个体遗传到新种群popN中,否则,获取indiv1的类别为classid1,再随机的在pop中选取一个个体indiv2,获取indiv2的类别为classid2,使得classid1!=classid2,然后使得indiv2与indiv1进行正交交叉操作,然后把新个体放入popN中,并把这个过程循环popsize次。
Step9.对popN进行轮盘赌选择选出一个个体indiv,随机生成一个0-1间的浮点数p,如果p大于变异概率pm,则把indiv直接遗传至popNM中,否则,对indivi进行变异操作,把变异后的结果放入popNM中,把这个过程循环popsize次。并使pop=popNM。
Step10.选出pop中适应度值最好的一个染色体记为bestIndiv,对bestIndiv进行解码操作生成一个map数据结构,key值为TaskTracker的编号,value值为要在该TaskTracker上执行的任务列表。
Step11.根据请求调度任务的TaskTracker的编号,把任务列表返回给JobTracker。
与现有技术相比,本发明具有以下优点:
(1)用比较少的配置文件便能产生比较好的调度效果。
(2)使用组合优化的思想来解决Hadoop任务调度算法,并且使用三个指标来评价解决方案,能从全局的思想更好地产生调度结果,更合理地利用资源。
(3)使用基于正交实验改进以后的谱聚类遗传算法进行寻优计算。正交初始化方法,使得初始种群中的染色体分布比较均匀,整个算法能从一个比较高的水平开始收敛,间接加快收敛速度;谱聚类能对任意形状的数据进行聚类,这样在种群中染色体相似度高的情况下也能产生很好的聚类结果;使用正交交叉,能减少无效交叉的可能,增加更多可能的分配方案。
附图说明
图1基于正交实验改进的谱聚类遗传算法流程图
图2构建TaskQueue流程;
图3 ETC矩阵图示;
图4 LTC矩阵图示;
图5基于SOXGASC的Hadoop任务调度过程;
图6染色体示意图
图7解码后的染色体示意图
图8为本方法的实施流程图。
具体实施方式
1.本发明首先使用正交实验改进谱聚类遗传算法,先使用正交初始化方法替换标准遗传算法中的随机初始化方法,因为正交实验有着均匀分布整齐可比的特点,所以使用正交初始化方法可以使得初始种群的个体均匀地分布在整个解空间中,使得整个算法可以从一个比较高的水平开始收敛,从而间接加快收敛速度。然后使用能对任意形状数据进行聚类的谱聚类在解码后的表现型空间进行种群划分操作。最后对划分后的种群进行正交交叉操作,以减少无效交叉操作,最终提出了改进改进后的遗传算法SOXGASC,如图1所示,以下为SOXGASC的步骤:
假设种群规模为popsize,交叉概率为pC,变异概率为pm,聚类个数为k,则基于正交实验改进的谱聚类遗传算法(SOXGASC)的步骤如下:
Step1.种群初始化,采用正交种群初始化产生初始种群initPop,并使得pop=initPop,gen=1;
首先根据表2中的算法将可行解空间分割成S个子空间,然后根据表4构造正交表LM(Q0 F),根据正交表LM(Q0 F)对每一个子空间利用表3中的正交交叉算子进行交叉操作,生成初始种群initPop。
Step2.判断是否满足停止进化的条件,如果不满足执行Step3,如果满足,执行Step7
Step3.对pop进行谱聚类,并保存聚类结果,谱聚类的过程见表1
Step4.使用轮盘赌方法从pop中选择一个个体indiv1,然后产生一个0-1之间的随机数p,如果p>pc,将indiv1直接遗传至种群popN中;否则的话,先获取indiv1的类别classid1,然后在pop中随机选择一个indivT,并获取indivT的类别classidT,使得classid1!=classidT,然后选择classidT类中适应度值最好的个体indiv2,让indiv1和indiv2两个个体进行表3中的正交交叉操作,并把新产生的个体放入popN中。此过程循环popsize次。
Step5.使用轮盘赌算法从popN中选择一个个体indiv,并产生一个0-1之间的随机浮点数p,如果p>pm,则把indiv直接遗传到种群popNM中,否则,让indiv进行变异操作,将变异后的个体放入popNM中。
表1–谱聚类过程
表2–子空间分割算法
Step6.使得pop=popNM,获取pop中的最优个体indivBest,并gen=gen+1
Step7.结束进化,将pop中的最优个体indivBest解码后便是所寻最优解。
为了验证SOXGASC在收敛速度和结果上都有显著的改进,现使用表5中12个标准函数对算法GA、CGA、GASC以及SOXGASC进行对比测试。运行环境为window1064位操作系统,处理器为CoreTMi7-5500U CPU@2.4GHz,12GB内存,开发环境为MATLAB2012a,编码为实数编码,算法中用到的参数见表6.
使用GASC、SOXGASC分别对以上12个测试函数进行独立运行10次,然后对每次运行寻到的最优值计算平均值和标准差,以保证算法的稳定性和结果的公正性。
如表7为本实验中初始种群的最优值,从表中可以看到GA、CGA以及GASC的初始种群最优值不论是平均值还是标准差都是从同一个数量级的数值开始收敛的,但是SOXGASC是从要比它们低好几个数量级的数值开始收敛的。这是因为,GA、CGA以及GASC都采用的随机初始化的方法对种群进行初始,所以不能保证初始化后的个体能很均匀的分布在整个遗传空间中;SOXGASC使用了正交初始化的方法对种群进行初始化,而正交实验的初衷就是要使用少量的试验来代表全部的试验,因此正交实验具有整齐分散的特点,所以使用正交初始化方法产生的初始种群中的个体能比价均匀的分布在整个遗传空间中,这样SOXGASC从初代种群中选出的最优值处在一个更加靠近全局优值的范围内,使得算法能从一个更高的起点开始收敛,从而有助于整个算法更快的收敛到一个更好的值。
表3–正交交叉算子
表4–创建正交表LM(QF)算法
表5标准函数
表6实验中的参数
如表8中为GA、CGA、GASC以及SOXGASC在12个标准函数上独立运行10次后的结果进行计算平均值和标准差的结果。从表8中可得知SOXGASC的大部分结果都是4种算法中最好的,说明正交实验对谱聚类遗传算法的改进是有效果的。
2.本发明将Hadoop任务调度看做是任务和TaskTracker的组合优化问题,采用Task编号-TaskTracker编号,即一条染色体即为一种解决方案。使用预测执行时间、本地任务个数和机器负载的组合作为适应度函数。使用本发明中提出的算法SOXGASC对所构建的模型求解对中得到一种在预测执行时间、本地任务个数和机器负载三个方面都相对较好的解决方案,整个流程如图5所示。具体实施方案如下:
Step1.设定参数,构建数据结构,进行个体编码。
(1)设置参数
需要用户设定的参数只有连个,MinRun和SinglePercent,这里令MinRun=3,SinglePercent=0.5。
遗传算法参数:popsize=50,pc=0.6,pm=0.2,聚类个数k=15,maxGen=80
表7 12个函数的初始种群中的最优值
(2)构建数据结构,进行个体编码
本发明首先根据图2所示流程构建待调度的任务列表TaskQueue,然后构建任务预测执行时间矩阵ETC,本地性任务个数矩阵LTC,机器负载列表loadList。如图3所示为ETC矩阵示意图,其中eij表示第i个任务在第j个TaskTracker上的预测执行时间;如图4为LTC矩阵示意图,其中lij表示第i个任务在的j个TaskTracker上是否为本地任务。
本发明采用了Task编号-TaskTracker编号的编码方式,假设TaskTracker列表ttsL={tts1,tts2,...,ttsp},TaskQueue={task1,task2,...,taskn},则染色体长度为n,染色体每一位的取值代表该编号的Task被分配到的TaskTracker的编号,则基因位上的最大取值为ttsL的长度p,即每一位基因的取值范围为[1,p]。一条染色体代表一种解决方案。则一条染色体中第i个基因位的值j代表第i个任务在第j个TaskTracker上面执行。如图6所示为染色体示意图。
Step2.种群初始化
本发明采用正交初始化方法进行种群初始化操作,产生popsize个个体,形成初始种群initPop,并使得pop=initPop。
Step3.对种群进行解码,形成表现型空间,记录适应度值。
每个染色体都按照基因座上的值为key,索引为value的形式进行解码,形成一个map数据结构,记录每个TaskTracker上的任务列表,如图7所示为染色体解码后的示意图。然后根据ETC、LTC、loadList求出每个染色体的任务预测执行时间timeExcute、本地性任务个数totalNumLocal、机器负载load,并且计算每个染色体的适应度值。
表8 12个标准函数的结果对比
每个染色体的适应度值是根据任务预测执行时间、本地性任务个数和机器负载的组合来评价的,其中:
(1)任务预测执行时间
每个解决方案的任务预测执行时间越短越符合要求,又因为本文中寻优是寻最大值,所以任务预测执行时间的评价如公式(2),
(2)本地性任务个数
每个解决方案的本地性任务个数越多越符合要求,所以关于本地性任务个数的评价如公式(3),
flocal(x)=totalNumLocal(x),x∈[1,popsize] (3)
(3)机器负载
每个解决方案的机器负载越小越符合要求,因此,关于机器负载的评价方式见公式(4),
综上所述,本发明中评价染色体适应度值的评价函数见公式(5),
F(x)=ftime(x)+flocal(x)+fload(x),x∈[1,popsize] (5)
Step4.对种群再解码后的表现型空间进行谱聚类,并记录聚类结果和pop中对应染色体的分类结果。
(1)根据解码后得出每个染色体的预测执行时间timeExcute、totalNumLocal、load以及公式(1)求出种群中个体的距离矩阵dis。
(2)使得pop中的个体两两相连构成一个有权无向图,pop中的个体看做顶点,距离矩阵dis中的值作为边的权值,然后求出该矩阵的邻接矩阵即为相似度矩阵S,然后进行谱聚类,并对聚类结果进行保存。
Step5.种群内的的个体进行正交交叉操作
对pop进行轮盘赌选出一个个体indiv1,然后随机生成一个0-1之间的浮点数p,如果浮点数p大于pc,直接把选择出的个体遗传到新种群popN中,否则,获取indiv1的类别为classid1,再随机的在pop中选取一个个体indiv2,获取indiv2的类别为classid2,使得classid1!=classid2,然后使得indiv2与indiv1进行正交交叉操作,然后把新个体放入popN中,并把这个过程循环popsize次。
Step6.种群内的个体进行变异操作
对popN进行轮盘赌选择选出一个个体indiv,随机生成一个0-1间的浮点数p,如果这个浮点数p大于pm,则把indiv直接遗传至popNM中,否则,对indivi进行变异操作,把变异后的结果放入popNM中,把这个过程循环popsize次。并使pop=popNM。
Step7.循环,Step3-Step6直到pop中包含最佳个体,选出pop中适应度值最好的一个染色体记为bestIndiv,对bestIndiv进行解码操作生成一个map数据结构,key值为TaskTracker的编号,value值为要在该TaskTracker上执行的任务列表。
Step8.根据请求调度任务的TaskTracker的编号,把任务列表返回给JobTracker。
实验结果
表9集群中四台机器的硬件条件
软件:四台主机的操作系统为32位的centos6.8,Hadoop版本为1.2.1,jdk为jdk1.7.0_80。
根据以上步骤本发明开发出了基于SOXGASC的Hadoop调度器SOXGASCFxNew,并将该调度器应用到了一个由表9中所示的4台机器组成的异构集群中,并提交了10个处理不同大小和类别的mapreduce任务,并与FIFO,Fair,Capacity做比较。
(1)任务执行时间如表10所示:
表10任务执行时间
从表10中可以看到SOXGASCFxNew的任务执行时间比GAFxNew的大部分有所减短,并且在六种算法中有很多Job的任务执行时间是最短的。
(2)本地性任务个数如表11所示
表11本地任务个数
从表11中可以看到,使用SOXGASCFxNew对10个Job的任务进行调度后,本地性任务所占比例有所提高,本地性任务的增多也很大程度上的减短了任务执行的时间。
(3)任务在三个slave节点上的分布如表12所示
表12任务在节点中的分布
从表12可以看到,SOXGASCFxNew算法的任务在三个slave节点上的分布按照节点的资源多少、性能好坏分布合理。
综上所述,将SOXGASC应用到Hadoop的调度后,任务的本地性比例有所增加,并且任务在三个节点上的分布更加合理,失败率下降,Job的执行时间也普遍在减短,从而可以得出基于SOXGASC的Hadoop调度算法能使得集群中的资源被更加合理的应用,而且对于用户来说所提交的Job的执行时间也减短,因此,基于正交实验改进的谱聚类遗传算法的Hadoop调度算法性能有所提高。

Claims (1)

1.基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法,其特征在于:该方法的实现包括如下步骤,
1)基于正交实验改进的谱聚类遗传算法
设种群规模为popsize,交叉概率为pc,变异概率为pm,聚类个数为k,则基于正交实验改进的谱聚类遗传算法的步骤如下
Step1.种群初始化,采用正交种群初始化产生初始种群initPop,并使得pop=initPop,gen=1;
Step2.判断是否满足停止进化的条件,如果不满足执行Step3,如果满足,执行Step7;
Step3.对pop进行谱聚类,并保存聚类结果;
Step4.使用轮盘赌方法从pop中选择一个个体indiv1,然后产生一个0-1之间的随机数p,如果p>pc,将indiv1直接遗传至种群popN中;否则的话,先获取indiv1的类别classid1,然后在pop中随机选择一个indivT,并获取indivT的类别classidT,使得classid1!=classidT,然后选择classidT类中适应度值最好的个体indiv2,让indiv1和indiv2两个个体进行正交交叉操作,并把新产生的个体放入popN中;此过程循环popsize次;
Step5.使用轮盘赌算法从popN中选择一个个体indiv,并产生一个0-1之间的随机浮点数p,如果p>pm,则把indiv直接遗传到种群popNM中,否则,让indiv进行变异操作,将变异后的个体放入popNM中;
Step6.使得pop=popNM,获取pop中的最优个体indivBest,并gen=gen+1;
Step7.结束进化,将pop中的最优个体indivBest解码后便是所寻最优解;
2)基于SOXGASC的Hadoop任务调度算法(SOXGASCFxNew)
设定有一个Hadoop集群,Hadoop集群中有p个TaskTracker,m个Job被提交到JobTracker,ttsL表示TaskTracker的列表,且ttsL={tts1,tts2,...,ttsp};JobQueue表示Job的队列,JobQueue={job1,job2,...,jobm};
配置文件中只需要两个参数MinJob和SinglePercent,其中,MinJob:一次最少处理job个数,由用户配置文件实现,是一个大于1的整数;SinglePercent:当一个大任务独占资源时最多可占用的资源比例,由用户配置文件实现,是一个0-1之间的浮点数;
Step1.根据配置文件中的参数MinJob和SinglePercent以及JobQueue中的Job生成待调度的任务列表TaskQueue;
Step2.获取TaskTracker列表ttsL;
Step3.根据TaskQueue和ttsL构建任务预测执行时间矩阵ETC,任务本地性矩阵LTC以及机器负载列表loadList;
Step4.根据TaskQueue、ttsL以及种群规模popsize进行正交种群初始化,设当前代数为1;
Step5.令当前种群为pop,判断是否满足停止进化条件,如果满足执行Step10;如果不满足到Step6;
Step6.对pop中的染色体进行解码,解码后根据ETC矩阵、LTC矩阵、loadList求出每个染色体的预测执行时间timeExcute、本地性任务个数totalNumLocal、机器负载load,然后根据公式(1)求出pop中个体的距离度矩阵dis;
<mrow> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;timeExcute</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>timeExcute</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>timeExcute</mi> <mi>j</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;tatalNumLocal</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>totalNumLocal</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>totalNumLocal</mi> <mi>j</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&amp;Delta;load</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msub> <mi>load</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>load</mi> <mi>j</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>d</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <msub> <mi>&amp;Delta;timeExcute</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>&amp;Delta;tatalNumLocal</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>&amp;Delta;load</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
Step7.使得pop中的染色体两两相连构成一个有权无向图,pop中的染色体看作顶点,距离矩阵dis中的值作为边的权值,然后求出该矩阵的邻接矩阵即为相似度矩阵S,然后进行谱聚类,并对聚类结果进行保存;
Step8.对pop进行轮盘赌选出一个个体indiv1,然后随机生成一个0-1之间的浮点数p,如果p大于交叉概率pc,直接把选择出的个体遗传到新种群popN中,否则,获取indiv1的类别为classid1,再随机的在pop中选取一个个体indiv2,获取indiv2的类别为classid2,使得classid1!=classid2,然后使得indiv2与indiv1进行正交交叉操作,然后把新个体放入popN中,并把这个过程循环popsize次;
Step9.对popN进行轮盘赌选择选出一个个体indiv,随机生成一个0-1间的浮点数p,如果p大于变异概率pm,则把indiv直接遗传至popNM中,否则,对indivi进行变异操作,把变异后的结果放入popNM中,把这个过程循环popsize次;并使pop=popNM;
Step10.选出pop中适应度值最好的一个染色体记为bestIndiv,对bestIndiv进行解码操作生成一个map数据结构,key值为TaskTracker的编号,value值为要在该TaskTracker上执行的任务列表;
Step11.根据请求调度任务的TaskTracker的编号,把任务列表返回给JobTracker。
CN201710448520.2A 2017-06-14 2017-06-14 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法 Active CN107273197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710448520.2A CN107273197B (zh) 2017-06-14 2017-06-14 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710448520.2A CN107273197B (zh) 2017-06-14 2017-06-14 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法

Publications (2)

Publication Number Publication Date
CN107273197A true CN107273197A (zh) 2017-10-20
CN107273197B CN107273197B (zh) 2020-08-28

Family

ID=60067145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710448520.2A Active CN107273197B (zh) 2017-06-14 2017-06-14 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法

Country Status (1)

Country Link
CN (1) CN107273197B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108415761A (zh) * 2018-01-31 2018-08-17 西北工业大学 一种基于网络流量优化的Storm任务调度方法
CN109144746A (zh) * 2018-07-19 2019-01-04 中国航空工业集团公司沈阳飞机设计研究所 一种gft训练系统的消息异步分发系统及方法
CN110109753A (zh) * 2019-04-25 2019-08-09 成都信息工程大学 基于多维度约束遗传算法的资源调度方法及系统
CN110457545A (zh) * 2019-08-16 2019-11-15 第四范式(北京)技术有限公司 一种确定推荐系统中排序模型的参数的方法及装置
CN113112171A (zh) * 2021-04-22 2021-07-13 合肥工业大学 一种基于轮盘赌和遗传算法的批调度方法
CN113139710A (zh) * 2021-01-05 2021-07-20 中国电子科技集团公司第二十九研究所 一种基于遗传算法的多资源并行任务高级计划排程方法
CN113641471A (zh) * 2021-07-30 2021-11-12 平安科技(深圳)有限公司 基于遗传算法模型的软负载调度方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902375A (zh) * 2014-04-11 2014-07-02 北京工业大学 一种基于改进遗传算法的云任务调度方法
CN104239964A (zh) * 2014-08-18 2014-12-24 华北电力大学 基于谱聚类和遗传优化极端学习机的超短期风速预测方法
CN104572297A (zh) * 2014-12-24 2015-04-29 西安工程大学 一种基于遗传算法的Hadoop作业调度方法
CN104809890A (zh) * 2015-04-19 2015-07-29 北京工业大学 基于主成分分析和局部搜索改进正交遗传算法的交通信号配时优化方法
US20160180245A1 (en) * 2014-12-19 2016-06-23 Medidata Solutions, Inc. Method and system for linking heterogeneous data sources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902375A (zh) * 2014-04-11 2014-07-02 北京工业大学 一种基于改进遗传算法的云任务调度方法
CN104239964A (zh) * 2014-08-18 2014-12-24 华北电力大学 基于谱聚类和遗传优化极端学习机的超短期风速预测方法
US20160180245A1 (en) * 2014-12-19 2016-06-23 Medidata Solutions, Inc. Method and system for linking heterogeneous data sources
CN104572297A (zh) * 2014-12-24 2015-04-29 西安工程大学 一种基于遗传算法的Hadoop作业调度方法
CN104809890A (zh) * 2015-04-19 2015-07-29 北京工业大学 基于主成分分析和局部搜索改进正交遗传算法的交通信号配时优化方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
WU MINGXIN: "Research on Improvement of Task Scheduling Algorithm in Cloud Computing", 《APPLIED MATHEMATICS & INFORMATION SCIENCES》 *
王会青 等: "遗传优化的谱聚类方法研究", 《计算机工程与应用》 *
王雷 等: "基于正交试验的遗传算法参数优化", 《南京师范大学学报(工程技术版)》 *
薛涛 等: "基于CHC遗传算法的Hadoop作业调度研究", 《计算机工程》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108415761A (zh) * 2018-01-31 2018-08-17 西北工业大学 一种基于网络流量优化的Storm任务调度方法
CN108415761B (zh) * 2018-01-31 2021-11-05 西北工业大学 一种基于网络流量优化的Storm任务调度方法
CN109144746A (zh) * 2018-07-19 2019-01-04 中国航空工业集团公司沈阳飞机设计研究所 一种gft训练系统的消息异步分发系统及方法
CN109144746B (zh) * 2018-07-19 2022-04-01 中国航空工业集团公司沈阳飞机设计研究所 一种gft训练系统的消息异步分发系统及方法
CN110109753A (zh) * 2019-04-25 2019-08-09 成都信息工程大学 基于多维度约束遗传算法的资源调度方法及系统
CN110457545A (zh) * 2019-08-16 2019-11-15 第四范式(北京)技术有限公司 一种确定推荐系统中排序模型的参数的方法及装置
CN113139710A (zh) * 2021-01-05 2021-07-20 中国电子科技集团公司第二十九研究所 一种基于遗传算法的多资源并行任务高级计划排程方法
CN113139710B (zh) * 2021-01-05 2022-03-08 中国电子科技集团公司第二十九研究所 一种基于遗传算法的多资源并行任务高级计划排程方法
CN113112171A (zh) * 2021-04-22 2021-07-13 合肥工业大学 一种基于轮盘赌和遗传算法的批调度方法
CN113112171B (zh) * 2021-04-22 2022-10-11 合肥工业大学 一种基于轮盘赌和遗传算法的批调度方法
CN113641471A (zh) * 2021-07-30 2021-11-12 平安科技(深圳)有限公司 基于遗传算法模型的软负载调度方法、装置、设备及介质
CN113641471B (zh) * 2021-07-30 2024-02-02 平安科技(深圳)有限公司 基于遗传算法模型的软负载调度方法、装置、设备及介质

Also Published As

Publication number Publication date
CN107273197B (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN107273197A (zh) 基于正交实验改进的谱聚类遗传算法的Hadoop任务调度方法
Liu et al. Deadline‐constrained coevolutionary genetic algorithm for scientific workflow scheduling in cloud computing
CN107273209B (zh) 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法
Mansouri et al. Hybrid task scheduling strategy for cloud computing by modified particle swarm optimization and fuzzy theory
Kalra et al. A review of metaheuristic scheduling techniques in cloud computing
Chen et al. Efficient simulation budget allocation for selecting an optimal subset
Kang et al. Task allocation for maximizing reliability of distributed computing systems using honeybee mating optimization
Xiong et al. A Johnson's-rule-based genetic algorithm for two-stage-task scheduling problem in data-centers of cloud computing
Riahi et al. A new hybrid ant colony algorithm for scheduling of no-wait flowshop
CN112053002B (zh) 一种基于效用感知的云制造多任务调度方法
CN109522104B (zh) 利用差分进化算法优化Iaas两目标任务调度的方法
Subashini et al. Comparison of multi-objective evolutionary approaches for task scheduling in distributed computing systems
CN110008023B (zh) 基于遗传算法的云计算系统预算约束随机任务调度方法
Kołodziej Evolutionary hierarchical multi-criteria metaheuristics for scheduling in large-scale grid systems
CN114461386A (zh) 任务分配方法及任务分配装置
Chraibi et al. Makespan optimisation in cloudlet scheduling with improved DQN algorithm in cloud computing
Fakhrzad et al. A new multi-objective job shop scheduling with setup times using a hybrid genetic algorithm
Moghadam et al. An efficient genetic algorithm for flexible job-shop scheduling problem
Wang et al. A novel memetic algorithm based on decomposition for multiobjective flexible job shop scheduling problem
Garg et al. Enhancing the discrete particle swarm optimization based workflow grid scheduling using hierarchical structure
Muthu et al. Optimized scheduling and resource allocation using evolutionary algorithms in cloud environment
CN112884368A (zh) 面向高端装备交货时间与延迟最小的多目标调度方法及系统
EP4030288A1 (en) Autonomous warehouse-scale computers
Chis et al. Multi-objective DSE algorithms' evaluations on processor optimization
Zhou A Heuristic Task Scheduling Strategy for Intelligent Manufacturing in the Big Data‐Driven Fog Computing Environment

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