如何*真正*从hdfs中回收磁盘空间

fquxozlt  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(516)

第一步是

hdfs dfs -rmr <path>

这会将文件放到/.trash中,但不会删除它们。
下一步是

hdfs dfs -expunge

目前还不清楚它的实际性能——从那以后,我们仍然看到:

$ hdfs dfs -du -h
279.4 G  .Trash

那么。。怎么做 .Trash 一劳永逸。。

z0qdvdin

z0qdvdin1#

删除时尝试-skiptrash选项。这将永远删除。

iswrvxsc

iswrvxsc2#

看来 expunge 安排垃圾收集

hdfs dfs -expunge
15/08/30 19:34:32 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 360 minutes, Emptier interval = 0 minutes.
15/08/30 19:34:32 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/stack/.Trash/150830193432

请注意,垃圾箱的检查点已创建。有点令人担忧的是 Emptier interval 是0。那么,什么时候才能真正删除数据呢。。
以下是 core-site.xml 设置(这个软件回答了如何自动进行hadoop垃圾清理以找到它们):
https://github.com/cloudera/hadoop-common/blob/ca2ff489eb805da4700fb15fa49e539f1c195b89/src/java/core-default.xml#l216-l225号

<property>
  <name>fs.trash.interval</name>
  <value>0</value>
  <description>Number of minutes after which the checkpoint
  gets deleted.
  If zero, the trash feature is disabled.
  </description>
</property>

<property>
  <name>fs.trash.checkpoint.interval</name>
  <value>0</value>
  <description>Number of minutes between trash checkpoints.
  Should be smaller or equal to fs.trash.interval.
  Every time the checkpointer runs it creates a new checkpoint 
  out of current and removes checkpoints created more than 
  fs.trash.interval minutes ago.
  </description>
</property>

我正在研究将这些值设置为零的实际效果。这似乎与事实不符 Trash 功能甚至被启用。。

相关问题