什么是Hadoop垃圾检查站?

时间:2018-03-25 02:07:07

标签: hadoop hdfs

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

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

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

Image: delete file and check in trash

Image: view checkpoint in trash

超过10分钟后,文件已在“废纸篓”中永久删除。

Image: file will be deleted permanently

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

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

Image: core-site.xml configuration

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

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

的目的是什么?

2 个答案:

答案 0 :(得分:1)

从“ 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

答案 1 :(得分:0)

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

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

Current正从fs.trash.interval移至检查点文件夹。

  

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

     

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