在看mapreduce的shuffle过程的时候,一直有几点疑问,一个partition分区的问题,还是wordcount的例子,当reduce有好几个,比如3个的时候,需要对map的结果(aaa,1)进行分区,指明它是属于哪个reduce,通常用的就是hash然后取余,那么,问题就是这partition过程是发生在什么时间呢?是发生在将map结果写入到内存中的时候吗?如果是这个时候,在这个内存块中是对这个(aaa,1)打了标记吗?map端完成后是只形成了一个文件吗?这个文件中是保存着这3个reduce的数据,当reduce来拉取数据的时候,是3个一起,拉取,各个reduce只拉取自己的数据吗?
求大神来详细解析一下啦.
|
|