在Hadoop中,映射器的输出在随机阶段被复制到化简器。 化简器必须从不同的映射器复制其相应的分区。在开始实际的减速过程之前,减速器将其输入存储在哪里?
映射输出被复制到归约任务 JVM 的内存中,如果它们是 足够小(缓冲区的大小由 mapred.job.shuffle.input.buffer.percent,指定 用于此目的的堆的比例(;否则,它们是 复制到磁盘。当内存中缓冲区达到阈值大小时 (由mapred.job.shuffle.merge.percent控制(或达到 映射输出的阈值数(mapred.inmem.merge.threshold(,它是 合并并溢出到磁盘。如果指定了合并器,它将运行 在合并期间减少写入磁盘的数据量。
参考 - Hadoop 权威指南