map map完全完成后map map reduce如何确定运行reduce?

时间:2012-05-23 04:08:35

标签: hadoop mapreduce

我注意到,通常当hadoop集群不忙时,在map side完成之前,减少一边开始进行?怎么可能?我记得在某个地方阅读减少进度指示器有点误导但不记得确切。有人可以对此有所了解吗?

3 个答案:

答案 0 :(得分:6)

任何减少任务进度指示器的

33 1 / 3 %正在复制地图输出。 (另外33 1 / 3 %正在对它们进行排序,最后33 1 / 3 %构成实际调用reduce()方法。)映射器一直在完成,并且你已经配置的尽可能多的reduce任务在它们准备好后立即拉出这些输出,所以最多 2 /第一轮减少阶段的 3 将在任何reduce()调用发生之前完成。

答案 1 :(得分:2)

除了已经给出的答案之外,此行为由mapred属性mapred.reduce.slowstart.completed.maps控制,该属性表示在复制阶段开始之前必须完成的地图任务的百分比(0-1)。

答案 2 :(得分:0)

这是因为reducer必须将map输出复制到reduce任务运行的节点。如果map任务已完成并提交了其输出,则可以直接传输它并将它们合并到reducer中已有的数据中。

所以这将节省你很多时间,而不是等到所有地图制作者完成。