Shuffle过程的简单介绍

Shuffle是连接Map和Reduce的桥梁

Shuffle分为Map端的Shuffle和Reduce端的Shuffle

Map端的shuffle

1输入数据和执行任务:
分片后分配Map任务,每个任务分配100M缓存
2写入缓存

在溢写过程中:



3溢写 溢写比达到0.8后启动溢写进程,把缓存写入到磁盘
分区:默认采用哈希函数
排序:默认操作
合并:可能发生(Combine),减少键值对数量
4文件归并:
在Map任务结束前进行归并
归并得到一个打文件,放在本地磁盘
如果溢写文件大于3时启动Combine操作


Reduce端的Shuffle任务
1Reduce从Map任务中拉取数据到本地
2先归并再合并,写入磁盘
3多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的
4当文件很少的时候,不需要溢写,直接在缓存中归并,然后输出给Reduce
posted @ 2016-12-08 22:56  Beeman_xia  阅读(356)  评论(0编辑  收藏  举报