zoukankan      html  css  js  c++  java
  • Hadoop的Combiner

    在很多MapReduce应用的场景中,假设能在向reducer分发mapper结果之前做一下“本地化Reduce”.一wordcount为样例,假设作业处理中的文件单词中"the"出现了574次,存储并shuffling一次(“the”,574)key/valuthe对照很多次("the",1)更有效。

    这个过程叫做合并(Combiner).

    hadoop 通过扩展MapReduce框架,在mapper何reducer之间添加了一个combine攻克了了这些瓶颈问题。你能够把combiner是为reducer的助手。它致力于降低mapper的输出以降低reducer上的压力。假设我们定义了一个combiner,MapReduce使用它的次数能够使0次。1次或者很多其它次。为了让combiner能正常的工作,它和reducer的数据转换必须等价。假设我们去掉了combine。reducer的输入应该是不变化的。

    当combiner被应用于中间数据中的随意子集时,仍然须要保持等价的转换特性。

    在一些场景下。combine的角色时十分明显的。

    假设reducer只处理分配性函数。如max,min和count时,我们能够直接使用使用reducer作为combiner,可是有时候很多实用的函数不是分配性的。

    我们就能够重写当中的一些函数,比如求average,从而调用combiner


  • 相关阅读:
    POJ
    归并排序+归并排序求逆序对(例题P1908)
    HDU
    2018-12-5 及 codeforces round 525v2
    2018-12-1学习纪录
    近期总结和未来规划
    C++ storage allocation + Dynamic memory allocation + setting limits + initializer list (1)
    注意项
    第四课 计算机的基本组成
    第二课+第三课 计算机系统概论
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7373116.html
Copyright © 2011-2022 走看看