2

长期以来,我观察到 Hadoop 框架在垃圾当前目录上设置了一个检查点,而不考虑时间间隔,而在创建自动检查点后在指定的删除间隔内永久删除文件/目录。这是我测试过的内容:

vi core-site.xml
    <property>
    <name>fs.trash.interval</name>
    <value>5</value>
    </property>

hdfs dfs -put LICENSE.txt /
hdfs dfs -rm /LICENSE.txt

fs.TrashPolicyDefault:Namenode 垃圾配置:删除间隔 = 5 分钟,Emptier 间隔 = 0 分钟。移动:'hdfs://hacluster/LICENSE.txt' 到垃圾箱:hdfs://hacluster/user/hduser/.Trash/Current

hdfs dfs -ls -R /user/hduser

/user/hduser/.Trash/当前

/user/hduser/.Trash/Current/LICENSE.txt

一段时间后:

/user/hduser/.Trash/160229140000

/user/hduser/.Trash/160229140000/LICENSE.txt

我创建了一个示例 bash 脚本来跟踪 Hadoop 在什么时候将“当前”目录设置为检查点,以及在检查点之后它是否在指定的垃圾间隔中删除:

垃圾间隔:5分钟

  1. 自动检查点 - 大约 30 秒
  2. 永久删除 - 大约 5 分钟

垃圾间隔:10分钟

  1. 自动检查点 - 大约 90 秒
  2. 永久删除 - 大约 10 分钟

垃圾间隔:15分钟

  1. 自动检查点 - 大约 630 秒
  2. 永久删除 - 大约 15 分钟

垃圾间隔:20分钟

  1. 自动检查点 - 大约 1080 秒
  2. 永久删除 - 大约 20 分钟

垃圾箱间隔 - 20 分钟(删除 - 手动检查点)

hdfs dfs -expunge
  1. 手动检查点 - 一次
  2. 永久删除 - 大约 20 分钟

任何人都可以帮助了解 Hadoop 何时创建此检查点。采用什么机制来创建垃圾检查点?如果是资源可用性,那么我的测试环境在此测试期间的开销为零。

4

0 回答 0