zhangtongzct

文章来源http://blog.csdn.net/ipolaris/article/details/8723782

reduce的输入每个key所对应的value将是一大串1,但处理的文本很多时,这一串1已将占用很大的带宽,如果我们在map的输出给于reduce之前做一下合并或计算,那么传给reduce的数据就会少很多,减轻了网络压力。此时Combiner就排上用场了。我们现在本地把Map的输出做一个合并计算,把具有相同key的1做一个计算,然后再把此输出作为reduce的输入,这样传给reduce的数据就少了很多。Combiner是用reducer来定义的,多数的情况下Combiner和reduce处理的是同一种逻辑,所以job.setCombinerClass()的参数可以直接使用定义的reduce,当然也可以单独去定义一个有别于reduce的Combiner,继承Reducer,写法基本上定义reduce一样。让我们看一下,加入Combiner之前的处理结果

分类:

技术点:

相关文章:

  • 2021-06-01
  • 2022-12-23
  • 2022-02-23
  • 2022-12-23
  • 2021-11-19
  • 2021-06-18
猜你喜欢
  • 2021-05-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-31
  • 2021-09-13
  • 2022-12-23
  • 2021-05-12
相关资源
相似解决方案