MapReduce的shuffle
2个阶段:
map端(phase)的shuffle
reduce端(phase)的shuffle
3个功能:
分区
– 决定mapTask的输出的数据 给 那个 reduce task处理
排序
– 至少经过3次排序
分组
– 将相同key的value放入一个集合中
2大优化
map phase shuffle
–合并combiner
在map端 进行了一次reduce聚合操作
并不是所有的MapReduce程序都可以设置combiner操作,
测试,一般符合结合律
–压缩compress
压缩map输出 的 结果数据,减少网络IO和磁盘IO流
常见的压缩算法:Snappy、Lz4,Lzo