http://www.jianshu.com/p/c97ff0ab5f49
总结shuffle 过程:
map端的shuffle:
(1)map端产生数据,放入内存buffer中;
(2)buffer满的时候,将buffer里面的数据按照key来快排,然后写到磁盘中;
(3)上面每次buffer满都会产生一个磁盘文件,最终会有很多磁盘文件,他们每个都排好序了,最后要把它们合并为一个大文件,就是一个merge的过程;
reduce端的shuffle:
(4)copy过程:reduce通过网络从map端下载数据;
(5)merge过程:下载的数据在内存或磁盘中,把它们merge成一个文件作为reduce的输入。