回顾Shuffle
加载在map 输出 reduce 输入之前这么一个过程
shuffle目的 —“分组”
环型缓冲区80%(分区排序–同时完成)----combiner----- 溢写磁盘上(分区且有序 spill.index(索引)+.out(输出文件))—归并排序–数据流还没落盘(把所有溢写文件 归并成一个文件 ,比如分区1 都归并写在一个分区1 ,分区2 都写在一个分区2里 )
溢写完输出多个文件,多个文件分区归并,归并完结果是一个文件,这个文件是分区且有序(输出在磁盘的样子)
Shuffle 整个过程是三次“分组”
1 快排--------归并map 输出—在进入reduce 之前经历一次归并处理(map1输出,首先文件拷贝内存缓冲分区输出(内存里指的都是同样分区数据 map1)—内存不够溢出到磁盘–对每个map1 进行归并排序–这个文件特点是:按照key 有序)
Hadoop数据压缩
目的:减少数据量,网络io传输量减少 -----减少io (combiner)
1 概述
2 压缩策略和原则
3 MR 支持的压缩编码
是否可切分:根据索引取数据中间部分 进行压缩
常用 snappy
最好:bzip2 但是不常用 因为慢
压缩格式特点
Gzip
Bzip2
Lzo
**Snappy
主要用在Shuffle 阶段