【发布时间】:2016-03-12 10:56:02
【问题描述】:
我刚刚下载了 Hortonworks 沙盒虚拟机,里面有 Hadoop 2.7.1 版本。我通过使用添加一些文件
hadoop fs -put /hw1/* /hw1
...命令。之后,我将删除添加的文件,由
hadoop fs -rm /hw1/*
...命令,在它清理回收站后,由
hadoop fs -expunge
...命令。但是回收站清理后 DFS 剩余空间没有改变。甚至我可以看到数据确实从 /hw1/ 和回收站中删除了。我有fs.trash.interval parameter = 1。
实际上我可以在/hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2文件夹中找到我所有的数据块,这真的让我感到惊讶,因为我希望它们被删除。
所以我的问题是如何以真正删除数据的方式删除数据?经过几次添加和删除,我的可用空间已经耗尽。
【问题讨论】:
-
这意味着
namenode删除了元数据,但datanode没有删除数据。检查您的namenode和datanode日志是否有错误或警告。尝试运行hdfs dfsadmin -report,看看你是否得到任何有用的信息。 -
另外记账需要一些时间。
-
Hadoop 使用 -rm 命令将内容移动到 thrash 目录。如果要永久删除文件夹,则必须使用命令
hadoop fs -rm -skipTrash /hw1/* -
@ShivanandPawar 这并不完全正确,因为 /trash 目录中的文件会在
fs.trash.interval属性中指定的分钟数后删除。此外,topicstarter 使用了hadoop fs -expunge,它从垃圾箱中永久删除了文件。 -
@maxteneff 我的错。非常感谢您指出这一点。
标签: hadoop hdfs hortonworks-data-platform