[发明专利]用于MapReduce的中间数据传输方法及系统在审
申请号: | 201310311798.7 | 申请日: | 2013-07-23 |
公开(公告)号: | CN103327128A | 公开(公告)日: | 2013-09-25 |
发明(设计)人: | 王猛;郭叶志 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30;G06F9/48 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 宋合成 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 mapreduce 中间 数据传输 方法 系统 | ||
技术领域
本发明涉及云计算技术领域,特别涉及一种用于MapReduce的中间数据传输方法、系统及中间传输服务器。
背景技术
当前云计算领域中,MapReduce是其中的一种简单流行但功能强大的编程模型,用于大规模数据集(大于1TB)的并行运算。MapReduce的应用非常广泛,包括:分布grep,分布排序,web连接图反转,每台机器的词矢量,web访问日志分析,反向索引构建,文档聚类,机器学习等。
MapReduce不要求集群的计算节点是大型机,只要普通机器即可。MapReduce操作的数据是分布在多台机器(节点)上的海量数据,这些数据都存储在一个分布式的文件系统中,文件系统会对外提供对文件进行流式操作的一些接口。MapReduce编程模型的核心思想是分而治之,一个用MapReduce框架编写的作业通常由两部分组成,Map阶段和Reduce阶段。这两个阶段的逻辑为:
Map(映射)阶段:框架执行多个map task,从分布式文件系统中读入对应的要处理的数据,使用map函数对每一条数据进行(映射)处理,并将结果按序写入本地磁盘。
Reduce(化简)阶段:框架执行一个或多个reduce task,通过网络获取所有由Map阶段产生的数据,使用reduce函数对其做进一步(化简)处理,将结果写到分布式文件系统中。
Map阶段的主体部分是用户自定义的map函数,它的输入为一个域上的(key,value)对,它的输出为另一域上(key,value)对的链表。
Map(k1,v1)→list(k2,v2)
map函数会并行地应用于全部输入数据,从而为每个输入(k1,v1)生成一系列(k2,v2)对。Reduce阶段的reduce函数也由用户自定义,MapReduce框架会将所有k2相同的(k2,v2)收集起来形成一组,并将所有组按一定规则分发给reduce进行处理。每个组将被应用Reduce函数,生成0个或多个值。
Reduce(k2,list(v2))→list(v3)
在MapReduce编程模型,如图5所示,并结合图6。当map task处理完所有数据时,最终会输出一个中间结果数据文件。当reduce task启动时,需要通过网络去获取所有map tasks计算出来的中间结果数据。Map和Reduce之间的中间数据是通过“pull”的方式来传输的,并且只有当有map task完成时,reduce task才能传输该map task的数据;当map tasks全部完成时,reduce task获取所有数据后才能开始计算。因此reducetask启动后的执行状态依赖于map tasks的完成。这种reduce task对map task的依赖会造成Map和Reduce阶段间的耦合关系。这种耦合关系是为了确保reduce tasks的正确执行,但是会引发“reduce task资源hoarding”和“网络负载不均衡”的问题。
现有的可解决“reduce task资源hoarding”或“计算节点网络负载不均衡”的技术方案中,在解决一方面问题的同时且加重另一方面的问题。
例如:一种常见的解决“reduce task资源hoarding”的技术是,推迟reduce task的启动时间点,即当绝大多数map task均完成时(如>=90%)才启动reduce task。该方案可以在一定程度上提高资源利用率,但是会导致计算节点的网络资源利用更加不平滑均。
例如:一种常见的解决“网络负载不均衡”的技术是,提前reduce task的启动时间点,即当map task刚启动时就启动reduce task。该方案可以解决“网络负载不均衡”的问题,但是会导致“reduce task资源hoarding”的问题更加严重。
另外,Apache社区的yarn分布式系统实现,提出了一个“独立shuffle service”的概念。独立shuffle service的职责是负责托管该计算节点已经完成的map task的中间结果数据,供reduce task获取;在此基础上yarn进行了两项改进:
引入批量map task中间结果数据获取机制,提高数据传输效率;
改进map task中间结果数据Server端的工作机制,使用“IO复用+线程池+非阻塞IO模型”,提高Server端处理能力;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310311798.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带保险功能的锁芯机构
- 下一篇:一种阳离子絮凝剂及其制备方法