一、背景
查看CDH节点的状态时,发现其中一个节点磁盘即将满
二、问题定位
通过查看linux主机磁盘占用,发现HDFS文件占用过大
du -x -h --max-depth=1
查看HDFS文件中,文件大小排行逆序TOP10
hdfs dfs -ls -R / | sort -r -n -k 5 | head -10
发现主要是flink的checkpoint:
有的集群发现是另外2类垃圾:
Log文件、Jar包文件(flink spark)
(1) /tmp/logs/bigdata/logs/application_1634782320178_0251/node6_8041
(2) /user/bigdata/.flink/application_1634782320178_0079/xxx.jar
(3) /user/spark/applicationHistory/application_1671610454634_001
三、解决方法
清理文件,只要不是正在运行的application ,都可以删除
hdfs dfs -rm -r /user/bigdata/.flink/application_*
hdfs dfs -rm -r /tmp/logs/root/logs/application_*
hdfs dfs -rm -r /user/spark/applicationHistory/application_*
在HDFS里,回收站功能开启后,删除文件时,不会真正的删除,暂时是放入回收站.trash中,回收站里的文件可以快速恢复。
可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值或是回收站被清空时,文件才会被彻底删除,并且释放占用的数据块。
这里选择直接删除.Trash目录文件,并清空回收站文件
删除.Trash目录(清理垃圾)
hdfs dfs -rm -r /user/root/.Trash/*
清空回收站
扫描二维码关注公众号,回复:
16512561 查看本文章
hdfs dfs -expunge
四、检验结果
查看节点磁盘状态
可以看到,磁盘清空了很多