使用压缩也是有场景的,压缩也是一个调优点
为什么使用压缩
节省空间
MR的reduce会进行shullfer过程中会进行数据的传输,压缩可以减少网络和磁盘的IO
压缩的条件
空间和CPU要充裕
压缩的技术
有损压缩(lossycompression):压缩和解压的过程中数据有丢失,解压后很难和原数据一致,使用场景:视频
无损压缩(lossless compression):压缩和解压的过程中数据没有丢失,使用场景:日志数据
对称和非对称
对称:压缩和解压的时间相同
非对称:压缩和解压的时间不一致
MR中压缩的场景
input:输入文件有codec可以自动处理压缩
map的输出:
configuration.set("mapreduce.output.fileoutputformat.compress","true");
configuration.set("mapreduce.output.fileoutputformat.compress.codec","org.apache.hadoop.io.compress.BZip2Codec");
reduce的输出:
configuration.set("mapreduce.output.f