【问题标题】:What is Hadoop trash checkpoint for?Hadoop 垃圾检查点有什么用?
【发布时间】:2020-08-21 13:04:36
【问题描述】:

我不明白在 Hadoop 垃圾中创建检查点的目的是什么,然后我做了一个简单的测试。

  • 我在 core-site.xml 中将 fs.trash.interval 属性设置为 10 分钟。
  • 我删除了 HDFS 中的一个文件,并将其移至 .Trash/Current。
  • 我等了 10 多分钟才在垃圾箱中检查结果。

但我看到它在大约 7 分钟后被移至检查点文件夹。

10 多分钟后,文件被永久删除到废纸篓中。

1)我的第一个问题是这里检查点的目的是什么。

然后我在 core-site.xml 中设置 fs.trash.checkpoint.interval 属性 3 分钟。

我在 HDFS 中删除了一个文件,大约 3 分钟后,它被移动到了检查点文件夹。
大约 10 分钟后,垃圾箱也清空了。
如果我使用命令'hdfs dfs -expunge,文件会立即移动到检查点文件夹。

2)我的第二个问题是finally文件将在10分钟后被永久删除,那么设置'fs.trash.checkpoint.interval'的目的是什么

【问题讨论】:

标签: hadoop hdfs


【解决方案1】:

检查点只是一种不定期清理整个垃圾文件夹的方法,一举一动。

fs.trash.interval 是实际删除文件的内容。

fs.trash.checkpoint.interval 正在从 Current 移动到检查点文件夹。

fs.trash.interval
默认:0
说明:检查点被删除的分钟数。如果为零,则禁用垃圾功能。这个选项可能是 在服务器和客户端上都配置。如果垃圾箱被禁用 服务器端然后检查客户端配置。如果垃圾是 在服务器端启用,则服务器上配置的值为 已使用并忽略客户端配置值。

fs.trash.checkpoint.interval
默认:0
说明:垃圾检查点之间的分钟数。应该小于或等于fs.trash.interval。如果为零,则该值设置为 fs.trash.interval 的值。每次检查点运行它 从当前创建一个新的检查点并删除检查点 创建时间超过fs.trash.interval 分钟前

【讨论】:

    【解决方案2】:

    来自“org.apache.hadoop.fs.TrashPolicyDefault”的源代码,

    Files are moved to a user's trash directory, a subdirectory of their home 
    directory named ".Trash".  Files are initially moved to a <i>current</i> 
    sub-directory of the trash directory. Within that sub-directory their original 
    path is preserved.  Periodically one may checkpoint the current trash and 
    remove older checkpoints.  (This design permits trash management without 
    enumeration of the full trash content, without date support in the filesystem, 
    and without clock synchronization.)
    

    https://github.com/hopshadoop/hops/blob/master/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/TrashPolicyDefault.java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多