【问题标题】:MapReduce - reduce running while map is not finishedMapReduce - 在地图未完成时减少运行
【发布时间】:2021-12-14 13:16:17
【问题描述】:

我在 hadoop 中实现了一个简单的 WordCount 应用程序。在我的集群上,我有一个名称节点和 4 个数据节点。复制率设置为 4。 在文件系统中,我放置了许多 lorem-impsum-files。 在运行 wordcount 应用程序时,即使映射器尚未完成,我也看到 reducer 正在工作。

2021-10-29 14:53:31,044 INFO mapreduce.Job:  map 70% reduce 23%

这是如何工作的? 在许多教程页面上都写有(例如一页): “当映射器仍在进行中时,reducer 无法启动” https://www.talend.com/resources/what-is-mapreduce/

如果映射的结果集没有完成,reducer 如何工作?

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    一旦数据由映射器发出,它会经历两个步骤:

    1. 它是 shuffled - 这是根据其键和分区器逻辑将数据发送到正确 reducer 的过程。
    2. 已排序 - 这发生在减速器本身。

    因此,即使映射器仍在发出数据,reducer 任务仍在创建,并在数据到达时对其进行排序。您是正确的,在所有映射完成之前,它们实际上不会开始处理值。

    【讨论】:

      猜你喜欢
      • 2016-02-24
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      相关资源
      最近更新 更多