Hadoop垃圾检查点是用来做什么的?

Hadoop垃圾检查点是用来做什么的?,hadoop,hdfs,Hadoop,Hdfs,我不明白在Hadoop垃圾中创建检查点的目的是什么,然后我做了一个简单的测试 我在core-site.xml中将fs.trash.interval属性设置为10分钟 我删除了HDFS中的一个文件,并将其移动到.Trash/Current 我等了10多分钟才在垃圾桶里检查结果 但我看到它在大约7分钟后被移动到checkpoint文件夹 10多分钟后,文件被永久地从垃圾箱中删除 1) 我的第一个问题是这里设置检查站的目的是什么 然后在core-site.xml中设置fs.trash.che

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

  • 我在core-site.xml中将fs.trash.interval属性设置为10分钟
  • 我删除了HDFS中的一个文件,并将其移动到.Trash/Current
  • 我等了10多分钟才在垃圾桶里检查结果
但我看到它在大约7分钟后被移动到checkpoint文件夹

10多分钟后,文件被永久地从垃圾箱中删除

1) 我的第一个问题是这里设置检查站的目的是什么

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

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


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

fs.trash.interval
实际删除文件

fs.trash.checkpoint.interval
正在从当前的
文件夹移动到检查点文件夹

fs.trash.interval

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

fs.trash.checkpoint.interval

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

从“org.apache.hadoop.fs.TrashPolicyDefault”的源代码中

文件被移动到用户的垃圾箱目录,即其主目录的子目录
名为“.Trash”的目录。文件最初移动到当前位置
垃圾箱目录的子目录。在这个子目录中,它们是原始的
路径被保留。可以定期检查当前垃圾箱和
删除旧的检查点。(该设计允许垃圾管理,无需
枚举完整垃圾箱内容,文件系统中不支持日期,
而且没有时钟同步。)

读一下这个?
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.)