【问题标题】:MapReduce execution sequence on Single Node单节点上的 MapReduce 执行顺序
【发布时间】:2015-02-21 19:07:50
【问题描述】:

我正在学习 Hadoop。
我在单个节点上运行 Hadoop。
据我所知,Reducer 在 Mapper 完成后运行(这也很有意义)。
但是当我在 200MB 文件上运行 MapReduce 作业时,Reducer 在 Mapper 完成之前启动。我没有使用任何组合器。
谁能解释一下为什么?

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    reduce 阶段涉及将数据输出从映射器复制并合并到 reducer。

    由于复制和合并中间输出不需要障碍(您不需要等待所有映射器完成),这就是在映射器运行时减速器正在做的事情。

    【讨论】:

    • 在多节点集群场景下,Mapper完成前合并合并的概念如何工作?与一个键相关的所有值都只能传递给一个 reducer。
    • @MitalAwachat 这是分区器的工作,默认情况下是散列你的键,所以它保证落在减速器的同一个分区中。
    • 另外值得指出的是,在 reduce 阶段达到 66% 之前(即,当 shuffle 和 sort 完成时),不会发生 reduce() 调用。
    猜你喜欢
    • 2018-02-06
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多