减速器如何聚合所有减速器的输出并产生最终输出?

时间:2016-05-05 04:28:57

标签: hadoop mapreduce reducers

当Map Reduce代码中有多个reducer时,它们之间没有任何通信。但是当执行像聚合这样的操作时,所有减速器一起产生单个最终输出。当它们之间没有通信时,聚合是如何发生的?是通过写入上下文吗?(context.write())

1 个答案:

答案 0 :(得分:0)

如果将reduce任务的数量设置为1(这也是默认值),则所有reduce()方法都由同一任务运行,因此不需要进行通信。

如果您将reduce任务的数量设置为 n ,那么您将拥有 n 输出文件,而不仅仅是1.这些结果确实是独立的。也许,您应该通过"聚合"来指定您的意思。