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


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

    。。

    。。

    。。。。

    。。

    。。。

    。。

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

    这才想起还有个combiner!

    。!!!。!!

    !。!!。!!

    !!

    !!

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

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

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

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

    。。。

    。。。。

    。。

    。。。。 

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

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

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

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



  • 相关阅读:
    八数码问题
    Choose and divide
    紫书 动态规划例题
    3657 括号序列 动态规划
    动态规划 舞蹈家怀特
    分数规划
    Keywords Search AC自动机
    Minimum Transport Cost Floyd 输出最短路
    A Simple Problem with Integers 线段树 区间更新 区间查询
    CF519E A and B and Lecture Rooms
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7162129.html
Copyright © 2020-2023  润新知