您当前的位置: 首页 > 

24 MAPREDUCE中的Combiner

杨林伟 发布时间:2019-08-08 09:57:44 ,浏览量:1

Combiner的使用要非常谨慎,因为combiner在mapreduce过程中可能调用也肯能不调用,可能调一次也可能调多次。

所以combiner使用的原则是,有或没有都不能影响业务逻辑。

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类型要对应起来。

关注
打赏
1688896170
查看更多评论

杨林伟

暂无认证

  • 1浏览

    0关注

    3183博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0651s