回顾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 阶段

本文深入解析Hadoop中的Shuffle过程,包括其目的、步骤及如何通过数据压缩优化网络IO传输,减少数据量。重点介绍Gzip、Bzip2、Lzo和Snappy等压缩格式的特点及应用。
1745





