在减少之前必须先完成地图吗?

Reu*_*ani 6 hadoop mapreduce

我在大学的讲师说,(Hadoop)减少操作只能在所有地图操作完成后开始.

这与map-reduce流操作的输出形成对比,有时显示:

map 80% reduce 13%
map 80% reduce 27%
and then
map 100% reduce 27%
.
.
map 100% reduce 100%
Run Code Online (Sandbox Code Playgroud)

(我有一个地图减少了我家中的三个节点集群,我已经运行了一些流媒体作业).

考虑到我的讲师知道他在说什么,输出意味着什么?当reduce开始但地图没有完成时,工作状态是什么?

Evg*_*tov 6

减少阶段有3个步骤:

1)复制(数据到减速器)

2)排序(或更准确地合并)

3)减少(执行Reduce()).

减速器可以启动时从映射数据应对这种映射执行完毕.

默认情况下,在为同一作业调度reduce任务之前,调度程序会等到作业中5%的map任务完成.对于大型作业,这可能会导致集群利用率出现问题,因为它们会在等待映射任务完成时占用减少插槽.将mapred.reduce.slowstart.completed.maps设置为更高的值,例如0.80(80%),可以帮助提高吞吐量.