起因: 集群磁盘剩余空间不足.
删除了存储在 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
时间太长, 花很长的时间把文件来下来压缩了, 下次突然要用, 可能来不及解压缩...
来源: http://www.bubuko.com/infodetail-2648946.html