摘出的一段:【下面的参考博客,很不错】
假如client设置过Combiner,那么现在就是使用Combiner的时候了。将
有相同
reduce1 , word1 , [8] )。
– 当整个 map task 结束后再对磁盘中这个 map task 产生的所有临时文件做
合并( Merge ),对于 “word1” 就是像这样的: {“word1”, [5, 8, 2, …]}, 假
如有 Combiner,{word1 [15]} ,最终产生一个文件。
– reduce 从 tasktracker copy 数据
– copy 过来的数据会先放入内存缓冲区中,这里的缓冲区大小要比 map 端
的更为灵活,它基于 JVM 的 heap size 设置
– merge 有三种形式: 1) 内存到内存 2) 内存到磁盘 3) 磁盘到磁盘。 merge
从不同 tasktracker 上拿到的数据, {word1 [15 , 17 , 2]}