1.经过切片之后的数据进入map端,然后将数据处理。
2.将数据拉取到环形缓冲区,大小默认为100M,当达到80%的时候,进行溢写到本地磁盘,剩下的20%进行继续拉取数据。
3.在环形缓冲区将数据溢写时,对数据进行快速排序,及分区处理。
4.经过上面处理后的数据合并为一个大的文件并进行归并排序,
5.当有一个maptask执行完毕后,reducetask启动。将归并排序后的数据拉取到reducetask任务中,此时的数据内部有序,外部是无序的。(因为每个maptask里进行了快速排序所以是内部有序,而拉取过来的数据是多个maptask的任务的数据所以是外部无序的)进行归并排序
6.将相同key的value写成一个集合,方便后的重写Reduce方法的reduce端进行操作,因为方法里有个迭代器。
7.reduce端将数据处理,再传出。
mapReduce的shuffle流程
最新推荐文章于 2024-08-21 21:23:39 发布