乐趣区

关于后端:hdfs开启回收站废纸篓

1、背景

咱们晓得,在 mac 零碎上删除文件,个别状况下是能够进入 废纸篓 里的,如果此时咱们误删除了,还能够从 废纸篓中恢复过来。那么在 hdfs 中是否存在相似 mac 上的 废纸篓 这个性能呢?答案是存在的。

2、开启 hdfs trash 性能

  • 当咱们启用 Trash 性能后,从 HDFS 中删除某些内容时,文件或目录不会立刻被革除,而是会被挪动到回收站目录中(/user/${username}/.Trash/current)。

小知识点:Trash 中还存在一个 检查点 ,目录门路大略为/user/${username}/.Trash/current/{检查点创立的工夫戳} 检查点 用于存储该检查点创立之前删除的所有文件或目录。

2.1 core-site 配置

批改 core-site.xml文件

<!-- 文件垃圾桶保留工夫,单位秒 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>
<!-- 前后 2 次检查点创立的工夫距离,单位分钟,该值须要 <=fs.trash.interval 的值,新的检查点被创立后,旧的检查点就会被零碎删除  -->
<property>
    <name>fs.trash.checkpoint.interval</name>
    <value>1440</value>
</property>

每个节点的 core-site.xml文件都须要批改。

2.2 启动 hdfs

[hadoopdeploy@hadoop01 sbin]$ start-dfs.sh
Starting namenodes on [hadoop01]
Starting datanodes
Starting secondary namenodes [hadoop03]
[hadoopdeploy@hadoop01 sbin]$

2.3 删除操作 - 进入.Trash 目录

[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -put start-dfs.sh /start-dfs.sh
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /
Found 1 items
-rw-r--r--   2 hadoopdeploy supergroup       5170 2023-05-22 22:36 /start-dfs.sh
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -rm /start-dfs.sh
2023-05-22 22:36:42,612 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop01:8020/start-dfs.sh' to trash at: hdfs://hadoop01:8020/user/hadoopdeploy/.Trash/Current/start-dfs.sh
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /
Found 1 items
drwx------   - hadoopdeploy supergroup          0 2023-05-22 22:36 /user
[hadoopdeploy@hadoop01 sbin]$

2.4 间接删除 - 不进入.Trash 目录

[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /
Found 1 items
drwx------   - hadoopdeploy supergroup          0 2023-05-22 22:36 /user
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -put start-dfs.sh /start-dfs.sh
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /
Found 2 items
-rw-r--r--   2 hadoopdeploy supergroup       5170 2023-05-22 22:41 /start-dfs.sh
drwx------   - hadoopdeploy supergroup          0 2023-05-22 22:36 /user
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -rm -skipTrash /start-dfs.sh
Deleted /start-dfs.sh
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /
Found 1 items
drwx------   - hadoopdeploy supergroup          0 2023-05-22 22:36 /user
[hadoopdeploy@hadoop01 sbin]$
退出移动版