我想开始一个 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
但我仍然得到原始错误。我应该怎么办?
最佳答案
如果我是你,我会按照另一个答案......
如果你真的知道自己在做什么,那么你可以这样做:
[gsamaras@gwta3000 ~]$ hadoop fs -rm -f -r -skipTrash /path/to/dirToBeDeleted
Deleted /path/to/dirToBeDeleted
我在阅读后组装:How to delete a non-empty directory in Terminal? 和其余的..
当您删除文件或目录时,它会进入垃圾箱,但是当您删除垃圾箱时,有一个时间间隔(这是可配置的,取决于您的设置,我的是 1 小时),必须经过,以便实际删除发生。
这个想法是您可能会意外删除一些重要的东西(或在使用大量计算能力后生成的东西),并且该配置使您有机会恢复您的数据。
如果您不确定如何继续,那么我建议您至少等待一个小时,然后再试一次,否则..
从那个 link ,有这个列表提出了一些想法:
-Dfs.trash.interval=0
目录 /user/<username>/.Trash
.Trash
移出 /user directory
。也许 /Trash/<username>
并设置不同的配额。 -rm
/rmr
因配额失败时,自动删除它们。 -rmr-skipTrash
之类的东西。 关于linux - 超过命名空间配额时如何清空hadoop上的垃圾?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30336538/