码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop实战:使用Combiner提高Map/Reduce程序效率

时间:2017-07-13 20:19:25      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:pop   处理   combine   app   water   实战   enter   多次   http   

好不easy算法搞定了。小数据測试也得到了非常好的结果,但是扔到进群上。挂上大数据就挂了。无休止的reduce不会结束了。

。。

。。

。。。。

。。

。。。

。。

====================================================================

这才想起还有个combiner!

。!!!。!!

!。!!。!!

!!

!!

我们知道。MapReduce是分为Mapper任务和Reducer任务。Mapper任务的输出,通过网络传输到Reducer任务端,作为输入。

在Reducer任务中,通常做的事情是对数据进行归约处理。

那么当大量的Mapper结果狂奔而来的时候。Reducer非常多时候是招架不住的,尤其是每个结果size也非常大的时候。如今该Combiner发挥作用了,我们能够把Reducer要做的工作让Combiner来做,这样不仅本地完毕了数据的规约处理,同一时候也大量降低了网络传输负载。传输时间大大缩减能够提高效率。

Reducer端接受的数据就基本是结果了。。

。。。

。。。。

。。

。。。。 

要注意的是,Combiner仅仅在Mapper任务所在的节点执行,不会跨Mapper任务执行。Reduce端接收全部Mapper端的输出来作为输入。尽管两边的归约类是同一个,可是执行的位置全然不一样。

并非全部的归约工作都能够使用Combiner来做。

比方求平均值就不能使用Combiner。由于对于平均数的归约算法不能多次调用。

===================================================================

技术分享


Hadoop实战:使用Combiner提高Map/Reduce程序效率

标签:pop   处理   combine   app   water   实战   enter   多次   http   

原文地址:http://www.cnblogs.com/liguangsunls/p/7162129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!