This question already has answers here:
Combiner Implementation and internal working

(3个答案)


4年前关闭。




组合器适合的用例是什么,组合器不适合的用例是什么。我知道组合器的功能,但是我试图理解码合器有意义的不同用例。

最佳答案

来源:Hadoop权威指南:

运行组合器功能可实现更紧凑的映射输出,因此更少的数据可写入本地磁盘并传输到reducer。

如果仅发生一次或两次溢出,则调用合并器的映射输出大小的潜在减少是不值得的开销,因此对于该映射输出不会再次运行。

什么是溢出:每个映射任务都有一个循环存储器缓冲区,它将输出写入该缓冲区。当缓冲区的内容达到某个阈值大小(80%)时,后台线程将开始将内容溢出到磁盘上。

如果组合器符合条件(可交换和关联),则IMO始终运行组合器。 Hadoop框架将决定是否运行合并器(基于 map 输出大小/不溢出)。因此,您不必担心性能降低。

08-28 05:08