hadoop必须在reduce之前完成Map吗?

1yjd4xko  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(363)

我在大学的讲师说(hadoop)reduce操作只能在所有map操作完成时启动。
这与map reduce流操作的输出形成对比,map reduce流操作有时清楚地显示:

map 80% reduce 13%
map 80% reduce 27%
and then
map 100% reduce 27%
.
.
map 100% reduce 100%

(我家里有一个map reduce三节点集群,我做了一些流媒体工作)。
如果我的演讲者知道他在说什么,那么输出意味着什么?当reduce已启动但map未完成时,作业处于什么状态?

qmelpv7a

qmelpv7a1#

还原阶段有3个步骤:
1) 复制(数据到减速器)
2) 排序(或更确切地说是合并)
3) reduce(执行reduce())。
当Map器完成执行时,reducer可以从Map器开始处理数据。
默认情况下,调度器在为同一个作业调度reduce任务之前,会等待作业中5%的map任务完成。对于大型作业,这可能会导致群集利用率问题,因为它们在等待map任务完成时占用reduce插槽。将mapred.reduce.slowstart.completed.maps设置为更高的值,例如0.80(80%),可以帮助提高吞吐量。

相关问题