[发明专利]一种MapReduce计算模型中基于遗传算法的数据平衡方法有效
申请号: | 201310015988.4 | 申请日: | 2013-01-16 |
公开(公告)号: | CN103106253A | 公开(公告)日: | 2013-05-15 |
发明(设计)人: | 伍卫国;樊源泉;魏伟;朱霍;高颜 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06N3/12 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 贺建斌 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 mapreduce 计算 模型 基于 遗传 算法 数据 平衡 方法 | ||
技术领域
本发明属于计算机MapReduce计算模型技术领域,具体涉及一种MapReduce计算模型中基于遗传算法的数据平衡方法。
背景技术
Hadoop是由Apache开源组织开发的一个具有高可靠性和高可扩展性的存储与分布式并行计算平台,最早是作为开源搜索引擎项目Nutch的基础平台而开发的,之后从Nutch项目中独立出来,成为典型的开源云计算平台之一。Hadoop核心实现了按块存储的分布式文件系统(Hadoop Distributed File System,HDFS)以及用于分布式计算的MapReduce计算模型。
MapReduce计算模型分为Map和Reduce两个大的任务处理阶段。在MapReduce处理过程中,Map阶段将输入数据转化成<Key,Value>键值对的数据形式,提供给Reduce阶段进行进一步的处理。在Reduce接受Map输出的键值对数据并对其进行处理前,还需要经过一个Shuffle阶段。Shuffle阶段主要对各个Map任务的输出数据进行混洗,并收集这些Map任务输出数据中需要由同一个reduce任务进行处理的数据。由于收集到的数据规模可能较大,Shuffle阶段会将数据合并存储到reduce任务所在节点的本地文件系统中,从而减少内存空间占用率。
每个Map任务依据reduce任务的数量将输出数据划分成相同份数的分区个数,单个reduce任务从所有Map任务中收集与之相对应的分区数据,所有具备相同key值的Map输出键值对将分配到同一个reduce任务进行处理,从而保证各个reduce的最终处理结果是建立在全局范围上的。
Shuffle阶段的特点决定了Reduce阶段各个reduce任务接受的数据量有可能极不平衡,从而导致Reduce阶段计算倾斜的问题。
1)由用户自定义分区策略导致的Reduce计算倾斜
MapReduce作业提交时根据指定的分区策略,Map阶段需要划分输出分区的个数,建立Map输出与reduce输入之间的对应关系。用户自定义的分区策略依据实际应用需求,将相互关联的数据划分到同一个分区中,由同一个reduce任务完成处理,保证最终结果的正确性,但同时也可能导致各个reduce任务处理数据量不平衡。
当MapReduce作业不关心数据的具体分区时,为快速完成Map输出数据的分区划分,通常采用的是hash分区法,通过Key的hash值确定整个<Key,Value>键值对的所属分区号,即分区号partitionNum=hashCode(Key)%REDUCER_NUM。这种方法受制于hash计算冲突以及reduce数目有限等因素,很可能出现大量的key汇聚到同一分区上,造成各reduce任务上的数据量不平衡。
2)由输入数据自身特征造成的Reduce计算倾斜
由于分区操作是在每一个Map的<Key,Value>键值对数据输出后执行,往往是依据Key的某些特点来确定其分区位置,缺乏Key对应Value数据规模的全局统计信息。因此,即使分区策略能保证各个分区中key的数量大致平衡,但由于Map阶段输入数据的自身特点,某些特定的key所对应的Value数据量远大于其他key对应的Value量,从而导致部分reduce任务要处理的数据量过大。这种现象通常出现于输入数据中存在一些热点数据的情况。一般情况下,Reduce阶段的输入数据倾斜将使得某些reduce任务相对于其他reduce任务执行时间增加,延长了整个Reduce阶段的运行时间,最终影响整个MapReduce作业的完成时间。
发明内容
为了克服上述现有技术的缺点,本发明的目的在于提供一种MapReduce计算模型中基于遗传算法的数据平衡方法,减少了任务reducer的处理时间,进而减少了整个MapReduce的处理时间,能很好的节约计算资源和减少计算成本。
为了达到上述目的,本发明采取的技术方案为:
一种MapReduce计算模型中基于遗传算法的数据平衡方法,包括以下步骤:
1)、获取全局Map输出信息,得到reduce任务处理的分区的元数据信息,Reduce元数据的获取过程为:
1.1、每个Map任务在完成处理过程并将输出结果写入本地磁盘后,会通过TaskTracker利用心跳信息发送任务完成消息到JobTracker;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310015988.4/2.html,转载请声明来源钻瓜专利网。