MapReduce - 在地图未完成时减少 运行
MapReduce - reduce running while map is not finished
我已经在 hadoop 中实现了一个简单的 WordCount 应用程序。在我的集群上,我有一个名称节点和 4 个数据节点。复制率设置为 4。
在文件系统中,我放置了许多 lorem-impsum 文件。
虽然 运行 wordcount 应用程序我看到 reducer 工作,即使映射器尚未完成。
2021-10-29 14:53:31,044 INFO mapreduce.Job: map 70% reduce 23%
这是如何运作的?
在许多教程页面上都写了(例如一页):
“映射器仍在进行中时,减速器无法启动”
https://www.talend.com/resources/what-is-mapreduce/
如果映射的结果集没有完成,reducer如何工作?
映射器发出数据后,它会经历两个步骤:
- 它被洗牌了 - 这是根据其键和分区程序逻辑将数据发送到正确的 reducer 的过程。
- 它已排序 - 这发生在 reducer 本身。
因此,即使映射器仍在发出数据,reducer 任务也会创建并在数据到达时对其进行排序。你是对的,因为在所有映射完成之前,它们实际上不会开始处理值。
我已经在 hadoop 中实现了一个简单的 WordCount 应用程序。在我的集群上,我有一个名称节点和 4 个数据节点。复制率设置为 4。 在文件系统中,我放置了许多 lorem-impsum 文件。 虽然 运行 wordcount 应用程序我看到 reducer 工作,即使映射器尚未完成。
2021-10-29 14:53:31,044 INFO mapreduce.Job: map 70% reduce 23%
这是如何运作的? 在许多教程页面上都写了(例如一页): “映射器仍在进行中时,减速器无法启动” https://www.talend.com/resources/what-is-mapreduce/
如果映射的结果集没有完成,reducer如何工作?
映射器发出数据后,它会经历两个步骤:
- 它被洗牌了 - 这是根据其键和分区程序逻辑将数据发送到正确的 reducer 的过程。
- 它已排序 - 这发生在 reducer 本身。
因此,即使映射器仍在发出数据,reducer 任务也会创建并在数据到达时对其进行排序。你是对的,因为在所有映射完成之前,它们实际上不会开始处理值。