超过命名空间配额时如何清空hadoop上的垃圾?
How to empty trash on hadoop when namespace quota is exceeded?
我想启动一个 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? 和其余的..
当你删除一个文件或一个目录时,它会进入回收站,但是当你删除回收站时,有一个间隔(这是可配置的,取决于你的设置,我的是1h),它必须经过,以便实际删除发生。
我们的想法是,您可能会不小心删除一些重要的东西(或在使用大量计算能力后生成的东西),并且该配置为您提供了恢复数据的机会。
如果您不确定如何进行,那么我建议您至少等待一个小时,然后再试一次,否则..
从那个link,有这个列表提出了一些想法:
- 告诉用户删除大文件时使用
-Dfs.trash.interval=0
目录
- 从配额中排除
/user/<username>/.Trash
- 将
.Trash
移出 /user directory
。也许 /Trash/<username>
并设置不同的配额。
- 当
-rm
/rmr
配额失败时,自动删除它们。
- 引入执行 (1) 的单独命令。类似于
-rmr
-skipTrash
用于强制删除。
我想启动一个 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? 和其余的..
当你删除一个文件或一个目录时,它会进入回收站,但是当你删除回收站时,有一个间隔(这是可配置的,取决于你的设置,我的是1h),它必须经过,以便实际删除发生。
我们的想法是,您可能会不小心删除一些重要的东西(或在使用大量计算能力后生成的东西),并且该配置为您提供了恢复数据的机会。
如果您不确定如何进行,那么我建议您至少等待一个小时,然后再试一次,否则..
从那个link,有这个列表提出了一些想法:
- 告诉用户删除大文件时使用
-Dfs.trash.interval=0
目录 - 从配额中排除
/user/<username>/.Trash
- 将
.Trash
移出/user directory
。也许/Trash/<username>
并设置不同的配额。 - 当
-rm
/rmr
配额失败时,自动删除它们。 - 引入执行 (1) 的单独命令。类似于
-rmr -skipTrash
用于强制删除。