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