当Map Reduce代码中有多个reducer时,它们之间没有任何通信。但是当执行像聚合这样的操作时,所有减速器一起产生单个最终输出。当它们之间没有通信时,聚合是如何发生的?是通过写入上下文吗?(context.write())
答案 0 :(得分:0)
如果将reduce任务的数量设置为1(这也是默认值),则所有reduce()方法都由同一任务运行,因此不需要进行通信。
如果您将reduce任务的数量设置为 n ,那么您将拥有 n 输出文件,而不仅仅是1.这些结果确实是独立的。也许,您应该通过"聚合"来指定您的意思。