zoukankan      html  css  js  c++  java
  • 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。由于对于平均数的归约算法不能多次调用。

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



  • 相关阅读:
    大型单机游戏画面帧数低,看着就不流畅 玩大型单机晕
    ssh无法启动 (code=exited, status=255)
    Log4Net
    ASP.NET 获取客户端IP地址
    sql 存储过程 输出参数 输入参数
    JSON资料整理
    test
    SQL SERVER调优常用方法 sql优化
    asp.net 获取网站根目录总结 Global.asax文件里获取获取网站根目录
    asp.net web 定时执行任务 定时器 Global.asax
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7162129.html
Copyright © 2011-2022 走看看