[发明专利]基于最小生成树聚类改进遗传算法的Hadoop任务调度方法有效

专利信息
申请号: 201710432104.3 申请日: 2017-06-09
公开(公告)号: CN107273209B 公开(公告)日: 2020-11-03
发明(设计)人: 杨新武;冯凯;王巧慧 申请(专利权)人: 北京工业大学
主分类号: G06F9/50 分类号: G06F9/50;G06F9/48;G06N3/00
代理公司: 北京思海天达知识产权代理有限公司 11203 代理人: 沈波
地址: 100124 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了基于最小生成树聚类改进遗传算法的Hadoop任务调度方法,包括待调度任务TaskQueue的建立,任务预测执行时间矩阵ETC的建立,任务本地性矩阵LTC的建立,机器负载列表loadList的建立;进行个体编码、初始化数据,并设定参数;进行种群初始化;对种群内的个体进行解码得到表现型空间,计算表现型空间个体的任务预测执行时间、本地性任务个数和机器负载,然后根据这三个值计算种群内个体的适应度值;在表现型空间对种群进行最小生成树聚类;选择种群内个体参加遗传操作;对选择的个体进行交叉和变异操作;重复迭代直到得到最佳个体。本发明采用改进的遗传算法作为优化算法,同时以任务预测执行时间、本地性任务个数、机器负载三个因素作为参数进行优化求解。
搜索关键词: 基于 最小 生成 树聚类 改进 遗传 算法 hadoop 任务 调度 方法
【主权项】:
基于最小生成树聚类改进遗传算法的Hadoop任务调度方法,其特征在于:通过较少的配置文件项以及集群中的可用slot数目建立一个更合理的使用遗传算法进行Hadoop任务调度的模型,然后采用任务预测执行时间、本地任务个数和机器负载作为优化目标,并采用基于最小生成树聚类改进的遗传算法求解模型以得到性能更好的调度器;设定一个Hadoop集群,Hadoop集群中有p个TaskTracker,m个Job被提交到JobTracker,ttsL表示TaskTracker的列表,且ttsL={tts1,tts2,...,ttsp},ttsL中的各个元素表示各个TaskTracker的列表;JobQueue表示Job的队列,JobQueue={job1,job2,...,jobm},JobQueue中的各个元素表示各个Job;1.构建TaskQueue用户使用Hadoop集群时,被初始化后的Job都以JobInProgress对象的形式都存放在JobQueue中;Hadoop调度问题最终是一个Task和TaskTracker的组合优化问题,因此使用遗传算法解决Hadoop调度问题的第一步便是将JobQueue中的Job使用策略构造TaskQueue;通过引入两个参数和当前集群中可用的slot数目来自适应地确定TaskQueue的长度和TaskQueue中的task,该TaskQueue与编码紧密相关,参数如下:MinJob:一次最少处理job个数,由用户配置文件实现,是一个大于1的整数;SinglePercent:当一个大任务独占资源时最多可占用的资源比例,由用户配置文件实现,是一个0‑1之间的浮点数;numsOfSlot:当前集群中可用的slot的数目,由系统自动获取;2.适应度函数在遗传算法中,适应度函数有着至关重要的作用,因遗传算法的思想来源于自然进化中的“优胜劣汰”,每个染色体的优劣程度便是由适应度函数决定的;在Hadoop集群中,调度器的性能直接影响着Hadoop的性能,而衡量一个调度器性能的指标有以下几条:(1)所有作业的平均完成时间;(2)任务的本地性(3)能否满足用户的资源需求(4)集群中各个节点的负载采用任务预测执行时间、本地任务个数以及机器负载三项性能指标的组合作为适应度函数;而且这三个性能指标是通过构建3个矩阵来完成计算的,分别是任务预测执行时间ETC矩阵,本地任务LTC矩阵以及机器负载loadList矩;2.1构建三个数据结构(1)构建ETC矩阵构建ETC矩阵是根据TaskQueue和TaskTracker的列表进行构建的,如图2所示为一个ETC矩阵,其元素eij代表第i个任务在第j个TaskTracker上的预测执行时间;(2)构建LTC矩阵构建LTC矩阵是根据TaskQueue和TaskTracker的列表进行构建的,如图2所示为一个ETC矩阵,其元素lij代表第i个任务在第j个TaskTracker上是否为本地任务;(3)构建loadListloadList是根据TaskTracker上的能够使用的资源个数和正在执行的任务个数来确定的;2.2构建适应度函数有了以上三个数据结构就可以构造适应度函数了;本方法对染色体的评价是对染色体解码以后进行计算,并且使用预测执行时间、本地性数量、负载三个标准同时进行衡量;3.在表现型空间进行种群划分操作编码使用任务编号‑TaskTracker编号,所以遗传算法种群中个体之间的有以下特点:(1)基因型空间中个体的索引代表任务的编号(2)基因型空间中每一个索引上的值代表的是TaskTracker的编号(3)表现型空间解码后的个体有任务预测执行时间、本地性任务个数和机器负载三个特征以上三个特点导致按照基因型空间各个基因位上值的欧式距离表示个体间的相似性是没有意义的;因此在计算种群的相似度矩阵时要在表现型空间,计算方法:根据解码后个体的任务预测执行时间、本地性认为个数和机器负载三个特种计算欧式距离确定他们之间的相似性;4.使用基于最小生成树改进的遗传算法寻找最优解将CGA用于调度Hadoop任务,编码方式采用Task编号‑TaskTracker编号,适应度函数采用预测执行时间、本地任务数、负载三个指标的组合;聚类操作在表现型空间进行,如下为基于CGA的Hadoop调度算法的步骤:Step1.根据配置文件中的参数MinJob和SinglePercent以及JobQueue中的Job生成待调度的任务列表TaskQueue;Step2.通过TaskTrackerManager获取集群中TaskTracker列表ttsL;Step3.根据TaskQueue和ttsL构建ETC矩阵,LTC矩阵以及loadList;Step4.根据TaskQueue、ttsL以及popsize进行种群初始化,设当前代数为1;Step5.令当前种群为pop,判断是否满足停止进化条件,如果满足执行Step10;如果不满足到Step6;Step6.对pop中的染色体进行解码,解码后求出每个染色体的预测执行时间timeExcute、totalNumLocal、load,然后根据这三个属性求出种群中个体的相似度矩阵dis;Step7.将pop中的染色体两两之间形成一条边构建一个无向图,并使用dis中的值作为无向图中边的权值形成有权无向图G,然后使用最小生成树聚类对种群进行划分;Step8.对pop进行轮盘赌选出一个个体indiv1,然后随机生成一个0‑1之间的浮点数,如果浮点数大于交叉概率pc,直接把选择出的个体遗传到新种群popN中,否则,获取indiv1的类别为classid1,再随机的在pop中选取一个个体indiv2,获取indiv2的类别为classid2,使得classid1!=classid2,然后使得indiv2与indiv1进行交叉操作,然后把新个体放入popN中,并把这个过程循环popsize次;Step9.对popN进行轮盘赌选择选出一个个体indiv,随机生成一个0‑1间的浮点数,如果这个浮点数大于pm,则把indiv直接遗传至popNM中,否则,对indivi进行变异操作,把变异后的结果放入popNM中,把这个过程循环popsize次;并使pop=popNM;Step10.选出pop中适应度值最好的一个染色体记为bestIndiv,对bestIndiv进行解码操作生成一个map数据结构,key值为TaskTracker的编号,value值为要在该TaskTracker上执行的任务列表;Step11.根据请求调度任务的TaskTracker的名称,把任务列表返回给JobTracker。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710432104.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top