压缩

1. 概述

(1)压缩的好处和坏处

 压缩的优点:以减少磁盘IO、减少磁盘存储空间。

 压缩的缺点:增加CPU开销。

 

(2)压缩原则

 1)运算密集型的Job,少用压缩。

 2)IO密集型的Job,多用压缩。

 

2. MR支持的压缩编码

 (1)压缩算法对比介绍

     
 
 (2)压缩性能的比较
 
   

 

 

3.  压缩方式选择

  压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片

 
 (1)Gzip压缩
  优点:压缩率比较高; 

  缺点:不支持Split;压缩/解压速度一般;

 
 (2)Bzip压缩

  优点:压缩率高;支持Split; 

  缺点:压缩/解压速度慢。

 

 (3)Lzo压缩

  优点:压缩/解压速度比较快;支持Split;

  缺点:压缩率一般;想支持切片需要额外创建索引。

 

 (4)Snappy压缩

  优点:压缩和解压缩速度快; 

  缺点:不支持Split;压缩率一般;

 

 (5)压缩位置选择:压缩可以在MapReduce作用的任意阶段启用。

  

 

 

 

4. 要在hadoop中启用压缩,可以配置如下参数

 

 

 

 

5. 压缩实操

 

(1)map端输出压缩

// 开启map端输出压缩
conf.setBoolean("mapreduce.map.output.compress",true); // 设置map端输出压缩方式 conf.setClass("mapreduce.map.output.compress.codec",BZip2Codec.class,CompressionCodec.class);

之后输出的文件不是压缩包。

 

(2)reducer端输出压缩

// 设置reduce端输出压缩开启
FileOutputFormat.setCompressOutput(job, true);
// 设置压缩的方式
FileOutputFormat.setOutputCompressorClass(job, BZip2Codec.class);

 

 

 

 

posted @ 2022-07-27 16:34  小王同学学编程  阅读(784)  评论(0编辑  收藏  举报
levels of contents