我想开始一个 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 因配额失败时,自动删除它们。
  • 引入执行 (1) 的单独命令。类似于用于强制删除的 -rmr-skipTrash 之类的东西。
  • 关于linux - 超过命名空间配额时如何清空hadoop上的垃圾?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30336538/

    10-10 10:28