ChainMapper/ChainReducer 的实现原理

ChainMapper/ChainReducer 主要为了解决线性链式Mapper 而提出的。也就是说,在Map 或者Reduce 阶段存在多个Mapper,这些Mapper 像Linux 管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper 的输入,形成一个流水线,形式类似于[MAP+REDUCE MAP*]。图1展示了一个典型的ChainMapper/ChainReducer 的应用场景:在Map 阶段,数据依次经过Mapper1 和Mapper2 处理;在Reduce 阶段,数据经过shuffle 和sort 后;交由对应的Reducer 处理,但Reducer 处理之后并没有直接写到HDFS 上,而是交给另外一个Mapper 处理,它产生的结果写到最终的HDFS 输出目录中。

图1 ChainMapper/ChainReducer 应用实例

需要注意的是, 对于任意一个MapReduce 作业,Map 和Reduce 阶段可以有无限个Mapper,但Reducer 只能有一个。也就是说,图2 所示的计算过程不能使用 ChainMapper/ChainReducer 完成,而需要分解成两个MapReduce 作业。

图2 一个ChainMapper/ChainReducer 不适用的场景

ChainMapper/ChainReducer 的实现原理

时间: 2024-07-28 21:13:01

ChainMapper/ChainReducer 的实现原理的相关文章

MapReduce ChainMapper/ChainReducer

The ChainMapper class allows to use multiple Mapper classes within a single Map task. The ChainReducer class allows to chain multiple Mapper classes after a Reducer within the Reducer task. 没有Chain之前,只能通用多个Job迭代来实现数据递进处理,这样做的缺点是: a. 每次迭代,如果所有 Job 对象重

链式ChainMapper/ChainReducer

类似于Linux管道重定向机制,前一个Map的输出直接作为下一个Map的输入,形成一个流水线.设想这样一个场景:在Map阶段,数据经过mapper1和mapper2处理:在Reduce阶段,数据经过sort和shuffle后,交给对应的reducer处理.reducer处理后并没有直接写入到Hdfs, 而是交给了另一个mapper3处理,它产生的结果最终写到hdfs的输出目录中. 注意:对任意MR作业,Map和Reduce阶段可以有无限个Mapper,但reduer只能有一个. package

MapReduce/Hbase进阶提升(原理剖析、实战演练)

什么是MapReduce? MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性.他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上. 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一

基于Hadoop2.0、YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\Ma

Hadoop的前景 随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发人员并不多,直接导致了这几年hadoop技术的薪水远高于JavaEE及 Android程序员. Hadoop入门薪资已经达到了8K以上,工作1年可达到1.2W以上,具有2-3年工作经验的hadoop人才年薪可以达到30万—50万. 一般需要大数据处理的公司基本上都是大公司,所以学

Hadoop大数据零基础高端实战培训视频

<Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量: 300课时 用到技术:部署Hadoop集群 涉及项目:京东商城.百度.阿里巴巴 咨询QQ:779591710 下载地址: 链接:http://pan.baidu.com/share/link?shareid=3299239734&uk=3289559542 密码:8tkb 第一阶段:Hadoop基础篇(50课时) - 千里之行,始于足下(赠送课

Hadoop2.0、YARN技术大数据视频教程

基于Hadoop2.0.YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\MapReduce\数据挖掘\项目实战)课程分类:Hadoop适合人群:高级课时数量:81课时用到技术:基于协同过滤的推荐系统.基于HBase的爬虫调度库涉及项目:银行人民币查询系统.HBase编程实践及案例分析咨询qq:1840215592 课程内容简介本课程基于<基于Greenplum Hadoop分布式平台的大数据解决方案>Hadoop部分的基础课程来进行扩展延伸,主要内容分为以下四部分:一.对Had

hadoop随手笔记

1.Hadoop Streaming 是为了方便不太熟悉java用户编写MR程序的工具.用户可以将任何可执行文件(C++)或者脚本(python,ruby)作为Mapper/Reducer, 提高了效率.Hadoop Steaming 要求用户编写的Mapper/Reducer从[标准输入]中读取数据,并将结果写到[标准输出]中.这个有点类似于linux的管道机制. 2.ChainMapper/ChainReducer 同样类似于linux管道重定向机制,前一个map的输出直接作为下一个map的

Hadoop的ChainMapper和ChainReducer使用案例(链式处理)

不多说,直接上干货!      Hadoop的MR作业支持链式处理,类似在一个生产牛奶的流水线上,每一个阶段都有特定的任务要处理,比如提供牛奶盒,装入牛奶,封盒,打印出厂日期,等等,通过这样进一步的分工,从而提高了生产效率,那么在我们的Hadoop的MapReduce中也是如此,支持链式的处理方式,这些Mapper像Linux管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper的输入,形成一个流水线,而这一点与Lucene和Solr中的Filter机制是非常类似的,Hadoop项

Hadoop的ChainMapper和ChainReducer实战

Hadoop的MR作业支持链式处理,类似在一个生产牛奶的流水线上,每一个阶段都有特定的任务要处理,比如提供牛奶盒,装入牛奶,封盒,打印出厂日期,等等,通过这样进一步的分工,从而提高了生产效率,那么在我们的Hadoop的MapReduce中也是如此,支持链式的处理方式,这些Mapper像Linux管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper的输入,形成一个流水线,而这一点与Lucene和Solr中的Filter机制是非常类似的,Hadoop项目源自Lucene,自然也借鉴了