Hadoop的压缩格式

1、 hadoop中的压缩格式

压缩格式文件扩展名是否可分割

低 

 

BZIP2.bz2
GZIP.gz
LZO.lzo是(建立index)
LZ4.LZ4
Snappy.snappy

2、选择什么样的压缩方式?

对于压缩的好处可以从两方面考虑:Storage+Compute

1. Storage:基于HDFS考虑,减少了存储文件所占空间,提升了数据传输速率。

2. Compute:基于YARN上的计算(MapReduce/Hive/Spark/Flink/...)速度的提升。

不同的场景选择不同的压缩方式

1.如果选择高压缩比,那么对于cpu的性能要求要高,同时压缩、解压时间耗费也多;

2.选择压缩比低的,对于磁盘io、网络io的时间要多,空间占据要多

3.对于支持分割的,可以实现并行处理

ps:分片的理解:举个例子,对于一个未压缩1G的文件,hdfs默认的block大小为128M,那么这个文件会被分为8个block作为mapreduce的输入,每一个单独使用一个map任务。如果文件特别大,需要使用压缩,例如使用gzip压缩方式,在hdfs上依然存储为8个block,但是gzip不支持分割(不支持随机读),当mapreduce处理时,会把这个8个块分给一个map去处理,这样就会有很多非本地处理的map任务,丢失数据的本地性,如果使用bzip2压缩格式则可以避免。

3、压缩在hadoop的应用场景

总结在三方面:输入、中间、输出:hdfs==>map==>shuffle==>reduce

1.从hdfs读取文件进行mapReduce作业,如果数据很大,可以使用压缩并且选择支持分片的压缩方式(bzip2、lzo),可以实现并行处理,提高效率,减少磁盘读取时间,同时选择合适的存储格式例如Sequence Files、RC、ORC等。

2.map输出作为reduce的输入,需要经过shuffle这一过程,需要先把数据读取到缓冲区,然后在写入到本地磁盘,所以选择压缩可以减少存储文件所占空间,提升了数据传输速率,建议使用压缩速度快的压缩方式,例如Snappy和LZO。

3.如果作为归档处理,可以采用高压缩比方式(gzip、Bzip2),如果作为下个作业的输入,考虑是否分片。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值