HDFS文件压缩

Posted springmoon-venn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS文件压缩相关的知识,希望对你有一定的参考价值。

  起因: 集群磁盘剩余空间不足。

  删除了存储在HDFS上的,一定时间之前的中间结果,发现并不能释放太多空间,查看计算业务,发现,每天的日志存在数量竟然是10份。/惊恐

  /a/log=20180101   #每日原始日志

  /b/log=20180101  #每日原始日志,做了清洗

  /c/log=20180101  #清洗后的日志移到这里使用

  /opt/backup/log=20180101  每日原始日志压缩  

  四个地方存储了原始日志(每天30G左右),由于所有目录都是3个副本,导致HDFS上几乎相同的文件存了9份(270G),一份本地压缩(5G)

  由于都是文本文件,压缩率比较高,就想把其中不常用的目录下的文件拉下了,压缩,放回去。

  ------------------正文---------------------

  第一版操作如下:    

1、获取文件
     hadoop fs -get /aa/test/xxxx.log
2、压缩
     tar -zcvf xxxx.log.tar.gz xxxx.log
3、上传
     hadoop fs -put xxxx.log.tar.gz /aa/test/
4、删除本地临时文件
     rm *
5、删除hdfs上文件
     hadoop fs -rm /aa/test/xxxx.log

  可以执行,但是很慢。

  反思一下:  

一个文件30G需要如下这么多时间:
    从hdfs拉到本地: 10 m 
    压缩 : 30+ m 
    上传到hdfs: 10 m

时间太长,花很长的时间把文件来下来压缩了,下次突然要用,可能来不及解压缩。。。

  

以上是关于HDFS文件压缩的主要内容,如果未能解决你的问题,请参考以下文章

hadoop mapreduce开发实践之HDFS压缩文件(-cacheArchive)

使用 MapReduce API 通过 Gzip 压缩复制 HDFS 内的文件

如何在 HDFS 中解压缩多个 zip 文件

如何将多个HDFS文件压缩为一个

HDFS文件压缩

HDFS 文件压缩上传与解压