大数据-数据压缩

Hadoop数据压缩

压缩能够有效减少底层存储(HDFS)读写字节数,提高网络宽带和磁盘空间的效率

在MapReduce里,通过压缩编码对Mapper或Reducer数据传输进行数据压缩,可以减少磁盘IO

基本原则

(1)运算密集型任务少用压缩

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

MapReduce支持的压缩编码
压缩格式Hadoop自带文件扩展名切分
DEFAULT.deflate
Gzip.gz
Gzip.gz
bzip2.bz2
LZO.lzo
Snappy.snappy
编码/解码器
DEFAULTorg.apache.hadoop.io.compress.DefaultCodec
Gziporg.apache.hadoop.io.compress.GzipCodec
bzip2org.apache.hadoop.io.compress.BZip2Codec
LZOorg.apache.hadoop.io.lzo.LzoCodec
Snappyorg.apache.hadoop.io.compress.SnappyCodec
压缩性能
压缩类型原始文件大小压缩文件大小压缩速度解压速度
gzip8.3GB1.8GB17.5MB/s58MB/s
bzip28.3GB1.1GB2.4MB/s9.5MB/s
LZO8.3GB2.9GB49.3MB/s74.6MB/s
Mapper阶段数据压缩
//开始Mapper端的输出压缩
conf.setBoolean("mapreduce.map.output.compress",true);
//设置压缩方式
conf.setClass("mapreduce.map.output.compress.codec", DefaultCodec.class, CompressionCodec.class);
Reducer阶段数据压缩
//开始Reducer端的输出压缩
FileOutputFormat.setCompressOutput(job, true);
//设置压缩方式
FileOutputFormat.setOutputCompressorClass(job, DefaultCodec.class);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值