当超过命名空间配额时,如何清空hadoop上的垃圾?

eoxn13cs  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(441)

我想启动hadoop流媒体作业,但失败了: 15/05/19 23:17:34 ERROR streaming.StreamJob: Error Launching job : The NameSpace quota (directories and files) of directory /user/myname is exceeded: quota=1000000 file count=1000001 我试着用 hdfs dfs -rm -r -f files 报告文件被移到垃圾箱。然后我试着 hdfs dfs -expunge 我回来了: 15/05/19 23:12:32 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes. 15/05/19 23:12:33 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/myname/.Trash/150519231233 但我还是得到了最初的错误。我该怎么办?

jpfvwuh4

jpfvwuh41#

原来我只需要等几个小时,直到一切都安定下来!

tpxzln5u

tpxzln5u2#

如果我是你,我会按照另一个答案。。。
如果你真的知道自己在做什么,那么你可以:

[gsamaras@gwta3000 ~]$ hadoop fs -rm -f -r -skipTrash /path/to/dirToBeDeleted
Deleted /path/to/dirToBeDeleted

这是我在阅读后汇编的:如何删除终端中的非空目录?剩下的。。
当你删除一个文件或一个目录时,它会被扔进垃圾箱,但是当你删除垃圾箱时,会有一个间隔(这个间隔是可配置的,取决于你的设置,我的间隔是1h),这个间隔必须经过,这样才会发生真正的删除。
这样做的目的是,您可能会意外地删除一些重要的内容(或者在使用了大量计算能力之后生成的内容),而这种配置为您提供了恢复数据的机会。
如果您不确定如何继续,我建议您至少等一个小时,然后再试一次,否则。。
从这个链接中,有一个列表提出了一些想法:
告诉用户使用 -Dfs.trash.interval=0 删除大目录时
排除 /user/<username>/.Trash 从配额中
移动 .Trash 由于 /user directory . 也许 吧 /Trash/<username> 设置不同的配额。
什么时候 -rm / rmr 配额失败,自动删除。
引入一个单独的命令来执行(1)。像这样的 -rmr -skipTrash 用于强制删除。

相关问题