HDFS删除了文件,但是磁盘空间没有释放,这是怎么回事?

今天公司内网QA环境的HDFS的datanode节点的磁盘空间使用近100%了,这时候我进行如下操作进行空间释放:
[root@qa-datanode2 bin]# ./hadoop fs -rmr /hbase/data/default/stackTable
rmr: DEPRECATED: Please use 'rm -r' instead.
17/08/17 08:44:55 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/08/17 08:44:56 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes, Emptier interval = 0 minutes.
Moved: 'hdfs://qa-hmaster1:9000/hbase/data/default/stackTable' to trash at: hdfs://qa-hmaster1:9000/user/root/.Trash/Current
删除之前磁盘空间使用情况:
[root@qa-datanode2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 3.2G 35G 9% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/xvdb 148G 140G 627M 100% /data
删除之后还是这样,没有效果,磁盘空间依然没有被释放,这是为什么呢?即使它在慢慢删除,也能看出一点效果啊,那这个是怎么回事呢? 希望有经验的同学回答一下。
已邀请:

采菊篱下 - 无分享不快乐 助力技术开源分享 运维一枚

赞同来自: being chris

空间不能及时释放是因为Hadoop回收站trash机制,默认是关闭的,你这里没有及时删除释放空间可能是你在conf/core-site.xml设置了删除系统垃圾间隔,你可以查看一下core-site.xml文件中fs.trash.interval的参数的值,一般都是设置为1440,即1天,也就是说删除的文件需要一天才能被删掉。 
 
那现在你想及时释放空间的话,如你的表现来看的话,可以执行如下命令做到:
# ./hadoop fs -rmr /user/root/.Trash
然后你再观察一下空间是否释放了,不出问题是ok的。

要回复问题请先登录注册