压缩策略和原则

压缩是提高Hadoop MapReduce(MR)程序效率的方式,通过压缩Mapper和Reducer的数据减少磁盘IO,但会增加CPU负担。压缩策略包括:运算密集型任务少用,IO密集型任务多用。Hadoop支持多种压缩编码,并提供了压缩性能对比。
摘要由CSDN通过智能技术生成

压缩策略和原则

压缩是提高Hadoop运行效率的一种优化策略

通过对Mapper**、Reducer运行过程的数据进行压缩,以减少磁盘IO**,提高MR程序运行速度。

注意:采用压缩技术减少了磁盘IO,但同时增加了CPU运算负担。所以,压缩特性运用得当能提高性能,但运用不当也可能降低性能。

压缩基本原则:

(1)运算密集型的job,少用压缩

(2)IO密集型的job,多用压缩

MR支持的压缩编码

压缩格式 hadoop自带? 算法 文件扩展名 是否可切分 换成压缩格式后,原来的程序是否需要修改
DEFLATE 是,直接使用 DEFLATE .deflate 和文本处理一样,不需要修改
Gzip DEFLATE .gz 和文本处理一样,不需要修改
bzip2 bzip2 .bz2 和文本处理一样,不需要修改
LZO 否需要安装 LZO .lzo 需要建索引,还需要指定输入格式
Snappy Snappy .snappy 和文本处理一样,不需要修改

为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器,如下表所示。

压缩格式 对应的编码/解码器
DEFLATE org.apache.hadoop.io.compress.DefaultCodec
gzip org.apache.hadoop.io.compress.GzipCodec
bzip2 org.apache.hadoop.io.compress.BZip2Codec
LZO com.hadoop.compression.lzo.LzopCodec
Snappy org.apache.hadoop.io.compress.SnappyCodec

压缩性能的比较

压缩算法 原始文件大小 压缩文件大小 压缩速度 解压速度
gzip 8.3GB 1.8GB 17.5MB/s 58MB/s
bzip2 8.3GB 1.1GB 2.4MB/s 9.5MB/s
LZO 8.3GB 2.9GB 49.3MB/s 74.6MB/s

文件的解压与压缩案例

//1. 一个从压缩工厂获取编解码器
//2. 解压是 codec.creatInputStream  cis 配合 fis
//	 压缩是 codec.creatOutputStream  cos 配合 fos


public class TestCompess {
   
    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值