【问题标题】:Mapper and Reducer in HadoopHadoop 中的 Mapper 和 Reducer
【发布时间】:2013-11-22 12:38:09
【问题描述】:

我对 Hadoop 的实现感到困惑。

我注意到,当我使用多个映射器和化简器运行 Hadoop MapReduce 作业时,我会得到很多 part-xxxxx 文件。同时,一个键确实只出现在其中一个中。

因此,我想知道 MapReduce 是如何工作的,这样一个键只能转到一个输出文件?

提前致谢。

【问题讨论】:

    标签: hadoop cloud elastic-map-reduce


    【解决方案1】:

    MapReduce 过程中的 shuffle 步骤负责确保具有相同 key 的 所有 记录最终在同一个 reduce 任务中。有关 MapReduce 数据流的描述,请参阅 this Yahoo tutorial。名为 Partition & Shuffle 的部分指出

    每个 map 任务都可以向任何分区发出 (key, value) 对;同一个键的所有值总是一起减少,不管它的来源是哪个映射器。

    【讨论】:

      【解决方案2】:

      随机播放

      Reducer 的输入是映射器的排序输出。在这个阶段,框架通过 HTTP 获取所有映射器输出的相关分区。

      排序

      框架在这个阶段通过键对Reducer输入进行分组(因为不同的映射器可能输出相同的键)。

      洗牌和排序阶段同时发生;在获取地图输出时,它们会被合并。

      我从这里得到这个

      https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html

      看看吧,希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        • 2018-08-02
        • 2012-05-30
        相关资源
        最近更新 更多