admin管理员组

文章数量:1130349

实验环境

hadoop版本: apache-hadoop-3.2.4

HDFS回收站

hadoop 的HDFS中也提供了回收站(trash)的概念,使得数据被误删以后,还可以通过回收站找回来。

1.启用回收站
在core-site.xml中添加如下配置,并重新启动集群。

<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>
<property>
    <name>fs.trash.checkpoint.interval</name>
    <value>1440</value>
</property>
  • fs.trash.interval
    指文件在回收站的暂存时间,文件被删除后实际上是被移动到回收站暂存目录下,而不是马上删除。等到回收周期到了,hdfs才会真正的将数据删除。默认的单位是分钟,1440分钟恰好就是一天。

  • fs.trash.checkpoint.interval
    指垃圾回收的检查间隔,一般不会大于fs.trash.interval。

2.验证回收站

[root@hadoop1 hadoop-3.2.4]# hdfs dfs -ls /test
Found 1 items
-rw-r--r--   3 root supergroup         18 2024-10-12 10:46 /test/a.txt

以test目录为例,下面有一个名为a.txt文件,我们对它执行删除操作。

[root@hadoop1 hadoop-3.2.4]# hdfs dfs -rm /test/a.txt
2024-10-15 22:38:14,776 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop1:9000/test/a.txt' to trash at: hdfs://hadoop1:9000/user/root/.Trash/Current/test/a.txt

通过命令的输出结果可以看到/test/a.txt文件实际被move到/root/.Trash/Current目录下了。

[root@hadoop1 hadoop-3.2.4]# hdfs dfs -ls -R /user/root/.Trash/Current
drwx------   - root supergroup          0 2024-10-15 22:38 /user/root/.Trash/Current/test
-rw-r--r--   3 root supergroup         18 2024-10-12 10:46 /user/root/.Trash/Current/test/a.txt

如果刚才的操作是一时不小心,那么通过mv命令可以将文件还原回去。

root@namenode:/opt/hadoop-3.2.4# hdfs dfs -mv /user/root/.Trash/Current/test/a.txt  /test

3.清空回收站

[root@hadoop1 hadoop-3.2.4]# hdfs dfs  -expunge
2024-10-15 22:43:04,860 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://hadoop1:9000/user/root/.Trash
2024-10-15 22:43:04,860 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://hadoop1:9000/user/root/.Trash
2024-10-15 22:43:04,874 INFO fs.TrashPolicyDefault: TrashPolicyDefault#createCheckpoint for trashRoot: hdfs://hadoop1:9000/user/root/.Trash
2024-10-15 22:43:04,882 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/root/.Trash/241015224304

4.直接删除(不放入回收站)
在删除文件时,也可以加入-skipTrash 选项略过回收站。

[root@hadoop1 ~]# hdfs dfs -rm  -skipTrash  /test/a.txt
Deleted /test/a.txt

实验环境

hadoop版本: apache-hadoop-3.2.4

HDFS回收站

hadoop 的HDFS中也提供了回收站(trash)的概念,使得数据被误删以后,还可以通过回收站找回来。

1.启用回收站
在core-site.xml中添加如下配置,并重新启动集群。

<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>
<property>
    <name>fs.trash.checkpoint.interval</name>
    <value>1440</value>
</property>
  • fs.trash.interval
    指文件在回收站的暂存时间,文件被删除后实际上是被移动到回收站暂存目录下,而不是马上删除。等到回收周期到了,hdfs才会真正的将数据删除。默认的单位是分钟,1440分钟恰好就是一天。

  • fs.trash.checkpoint.interval
    指垃圾回收的检查间隔,一般不会大于fs.trash.interval。

2.验证回收站

[root@hadoop1 hadoop-3.2.4]# hdfs dfs -ls /test
Found 1 items
-rw-r--r--   3 root supergroup         18 2024-10-12 10:46 /test/a.txt

以test目录为例,下面有一个名为a.txt文件,我们对它执行删除操作。

[root@hadoop1 hadoop-3.2.4]# hdfs dfs -rm /test/a.txt
2024-10-15 22:38:14,776 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop1:9000/test/a.txt' to trash at: hdfs://hadoop1:9000/user/root/.Trash/Current/test/a.txt

通过命令的输出结果可以看到/test/a.txt文件实际被move到/root/.Trash/Current目录下了。

[root@hadoop1 hadoop-3.2.4]# hdfs dfs -ls -R /user/root/.Trash/Current
drwx------   - root supergroup          0 2024-10-15 22:38 /user/root/.Trash/Current/test
-rw-r--r--   3 root supergroup         18 2024-10-12 10:46 /user/root/.Trash/Current/test/a.txt

如果刚才的操作是一时不小心,那么通过mv命令可以将文件还原回去。

root@namenode:/opt/hadoop-3.2.4# hdfs dfs -mv /user/root/.Trash/Current/test/a.txt  /test

3.清空回收站

[root@hadoop1 hadoop-3.2.4]# hdfs dfs  -expunge
2024-10-15 22:43:04,860 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://hadoop1:9000/user/root/.Trash
2024-10-15 22:43:04,860 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://hadoop1:9000/user/root/.Trash
2024-10-15 22:43:04,874 INFO fs.TrashPolicyDefault: TrashPolicyDefault#createCheckpoint for trashRoot: hdfs://hadoop1:9000/user/root/.Trash
2024-10-15 22:43:04,882 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/root/.Trash/241015224304

4.直接删除(不放入回收站)
在删除文件时,也可以加入-skipTrash 选项略过回收站。

[root@hadoop1 ~]# hdfs dfs -rm  -skipTrash  /test/a.txt
Deleted /test/a.txt

本文标签: 回收站hdfs