reducer如何聚合所有reducer的输出并生成最终输出?

kokeuurv  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(454)

当map-reduce代码中有多个reducer时,它们之间没有任何通信。但是当执行聚合之类的操作时,所有的还原器一起产生一个最终输出。当它们之间没有通信时,聚合是如何发生的?是通过写入上下文吗?(context.write())

laik7k3q

laik7k3q1#

如果将reduce tasks的数量设置为1(这也是默认值),那么所有reduce()方法都由同一个任务运行,因此不需要通信。
如果将reduce任务数设置为n,则将有n个输出文件,而不仅仅是1个。这些结果确实是独立的。也许,您应该指定“聚合”的含义。

相关问题