【问题标题】:Hadoop Reducer execution re-occurrenceHadoop Reducer 执行再次发生
【发布时间】:2014-01-30 10:51:13
【问题描述】:

所以 Mapper 只在包含给定数据块的给定从节点上执行一次,对吗?

但是 Reducer 可能会执行多次,因为同一个 key 可能来自多个 Mapper 节点,对吗?

对于单个 MapReduce 作业,Shuffle 和 Sort 将在每个 Mapper 上发生是否正确?

【问题讨论】:

    标签: hadoop mapreduce reduce


    【解决方案1】:

    一般来说,我认为不应该说 Mapper/Reducer 执行了多少次,因为它们广泛分布在不同的节点中,并由 MRv1 中的 JobTracker 或 MRv2 中的 ResourceManager 调度。但希望我下面的回答可以帮助您更好地理解。

    问:“所以 Mapper 只在包含给定数据块的给定从节点上执行一次,对吗?”

    答:大多数情况下是正确的。通常情况下,hadoop 会为每个输入拆分启动一个映射器(默认情况下与数据块大小相同),但如果映射器失败,它将启动一个新的映射器。

    问:“但是 Reducer 可能会执行多次,因为同一个 key 可能来自多个 Mapper 节点,对吗?”

    答:不正确。 Shuffle 和 Sort 过程会将所有 mapper 输出合并到一个单独的排序输入中,并提供给 reducer。 reducer 的数量由用户定义。

    问:“对于单个 MapReduce 作业,Shuffle 和 Sort 将在每个 Mapper 上发生也是正确的吗?”

    答:不准确。 Shuffle 阶段是 hadoop 执行的过程,用于对映射器的输出进行排序并将映射器的输出作为输入传输到 reducer。当所有映射器的输出都被复制后,排序阶段将合并所有输出并保持它们的排序顺序。所以从技术上讲,Shuffle 和 Sort 的第一部分发生在每个映射器上。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 2012-08-18
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多