MAPREDUCE中的Combiner

来源:互联网 发布:淘宝天猫 购物心得 编辑:程序博客网 时间:2024/06/06 02:43

(1)combiner是MR程序中Mapper和Reducer之外的一种组件

(2)combiner组件的父类就是Reducer

(3)combiner和reducer的区别在于运行的位置:

           Combiner是在每一个maptask所在的节点运行

           Reducer是接收全局所有Mapper的输出结果;

  (4)  combiner的意义就是对每一个maptask的输出进行局部汇总,以减小网络传输量

具体实现步骤:

1、  自定义一个combiner继承Reducer,重写reduce方法

2、  job中设置:  job.setCombinerClass(CustomCombiner.class)

(5) combiner能够应用的前提是不能影响最终的业务逻辑

而且,combiner的输出kv应该跟reducer的输入kv类型要对应起来