[发明专利]一种MapReduce计算模型中基于遗传算法的数据平衡方法有效
申请号: | 201310015988.4 | 申请日: | 2013-01-16 |
公开(公告)号: | CN103106253A | 公开(公告)日: | 2013-05-15 |
发明(设计)人: | 伍卫国;樊源泉;魏伟;朱霍;高颜 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06N3/12 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 贺建斌 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种MapReduce计算模型中基于遗传算法的数据平衡方法,先获取全局Map输出信息,利用遗传算法进行组合优化:先将元数据收集,进行编码,然后对种群进行多次随机划分,每次划分形成一个基因组,计算每个基因中所有子集的适应度函数值,并计算出每个目标函数的概率,对每一个基因的适应度进行评价的基础上将选择算子应用于基因组,利用轮盘赌算法随机的选择出基因组中的若干个优质基因,对选出来的基因进行交叉运算,再进行变异操作,经过多轮进化之后依据精英保留策略选择保留的基因,并对基因进行解码,就可获得对元数据的一个优化的组合,保证每个reducer所处理的数据量是近似相等的,本发明解决了reduce阶段输入数据不均衡的问题,节约计算资源,减少计算成本。 | ||
搜索关键词: | 一种 mapreduce 计算 模型 基于 遗传 算法 数据 平衡 方法 | ||
【主权项】:
1.一种MapReduce计算模型中基于遗传算法的数据平衡方法,其特征在于,包括以下步骤:1)、获取全局Map输出信息,得到reduce任务处理的分区的元数据信息,Reduce元数据的获取过程为:1.1、每个Map任务在完成处理过程并将输出结果写入本地磁盘后,会通过TaskTracker利用心跳信息发送任务完成消息到JobTracker;1.2、JobTracker为每个MapReduce作业维护一个Map任务完成消息队列,当某个运行reduce任务的TaskTracker请求获取Map任务时,依据该reduce任务所属的作业,从相应队列中取出消息并传递给TaskTracker;1.3、同一作业中的reduce任务从所在的TaskTracker获取Map任务完成消息,从中提取Map任务的运行时信息,包括Map任务编号,执行节点,利用这些信息,reduce任务建立与执行节点间的HTTP连接,并请求Map任务输出的元数据信息;1.4、TaskTracker依据请求的Map任务编号,从本地文件系统中读取相应Map任务输出的索引文件,并发送给请求的reduce任务;1.5、reduce任务合并不同索引文件中的相同编号虚拟分区,汇总各个虚拟分区中所有同种类型<Key,Value>键值对的数据量,由于每个reduce任务要获取所有map任务输出的元数据信息;2)、对Map的输出数据进行处理,reduce任务获取各个map任务输出的分区原始数据;将汇总后的元数据提交给重分区器,采用基因算法对元数据进行平衡分区,基因算法是对二进制位串进行操作,其具体步骤如下:2.1、将Map输出数据的元数据收集起来放在一个集合中,作为一个种群,对种群中的每个元素进行编码,所谓的编码就是用“0、1”组成的代码表示每一个元素,本发明采用的编码方式是用1的个数来表示元素所在集合中的下标,对该种群进行随机划分,划分成N个子集,其中N与reduce的个数相对应,每一次的划分形成一个基因,经过多次划分之后,形成一个基因组;2.2、在基因算法中适应度函数是用来衡量遗传个体对于生存环境的适应程度,适应度越高的个体获得更多的复制机会,反之亦然,因此,定义一个适应度函数min { Σ j = 1 n | S j - S | } / n ]]> 公式(1),其中,为全部子集的元素之和的平均值,公式(1)中目标函数描述的是各个子集合到平均值的平均距离,利用该公式(1),对每一个基因计算其适应度函数,形成一个新的集合,接着求出每一个基因适应度函数的概率,即一个基因的适应度函数的值除以整个基因组的适应度函数值之和;2.3、将选择算子应用于基因组,采用的选择算子是轮盘赌选择法,利用随机函数产生一个在[0,1]之间的随机数,判断其在基因组中的适应度概率序列中的位置,如果它最多能大于序列中的第m个值,则表示m号基因被选中,自由指定需要选择的基因的个数;2.4、对选出来基因进行交叉运算,即把优质基因的部分结构加以替换重新组合形成新的基因,采用单点交叉算子,具体操作是:随机设定一个交叉点,对应轮盘赌选择算法选择出来的基因,进行交叉,即该交叉点前后的两个基因的部分结构进行互换,并生成两个新个体,并且确保交换之后的基因组不会出现有空集合的情况,设定一个nullGen标志,遍历交叉后的基因组,如若发现有空集合存在,即将nullGen标志设置为false,并以此来标识该删除的基因;2.5、对交叉后的基因进行变异运算,变异运算是依据变异概率将基因组中某些基因用其它的基因来替换从而形成一个新的个体,采用固定位变异算子,并且将变异概率设为0.1,以期获得最优解,固定位变异算子是指对单个基因固定的指定的某一位或某几位基因作变异操作:原有基因为0的,则变为1,原有基因为1的,则变为0,经过变异操作之后,对变异后的基因进行非空检查,保证编译后的基因依然会有N个子集;2.6、以上描述了一轮进化过程,经过多轮进化之后依据精英保留策略选择保留的基因,采用的基因保留策略是:经过以上步骤后,计算每一个基因的目标函数值,并将其与基因组中所有基因的目标函数值相比较,将前者小于后者的基因保留下来;2.7、对保留下来的基因进行解码,就可获得对元数据的一个优化的组合,即将元数据划分成N个大小基本相当的子集,然后,将每个子集对应的元数据分配到一个reducer上,这样就保证每个reducer所处理的数据量是相当的。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310015988.4/,转载请声明来源钻瓜专利网。