Hadoop数据压缩

hadoop

3个阶段:
1)分布式文件系统HDFS
2)分布式编程框架MapReduce
3)yarn框架

Hadoop数据压缩

MR操作过程中进行大量数据传输。
压缩技术能够有效的减少底层存储(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。
数据压缩能够邮箱的节省资源! 压缩是mr程序的优化策略!
通过压缩编码对mapper或者reducer数据传输进行数据的压缩,以减少磁盘IO。

压缩的基本原则

1)运算密集型任务少用压缩
2)IO密集型的任务,多用压缩

MR支持的压缩编码

压缩格式 | hadoop是否自带? |文件拓展名 | 是否可以切分

DEFAULT | 是 | .deflate | 否
Gzip | 是 | .gz | 否
bzip2 | 是 | .bz2 | 是
LZO | 否 | .lzo | 是
Snappy | 否 | .snappy | 否

编码/解码器

DEFAULT|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.LzoCodeC
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

使用方式

map端输出压缩

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

reduce端输出压缩

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值