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.shStarting namenodes on [hadoop01]Starting datanodesStarting 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.sh2023-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 itemsdrwx------ - hadoopdeploy supergroup 0 2023-05-22 22:36 /user[hadoopdeploy@hadoop01 sbin]$
2.4 间接删除-不进入.Trash目录
[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /Found 1 itemsdrwx------ - 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.shdrwx------ - hadoopdeploy supergroup 0 2023-05-22 22:36 /user[hadoopdeploy@hadoop01 sbin]$ hadoop fs -rm -skipTrash /start-dfs.shDeleted /start-dfs.sh[hadoopdeploy@hadoop01 sbin]$ hadoop fs -ls /Found 1 itemsdrwx------ - hadoopdeploy supergroup 0 2023-05-22 22:36 /user[hadoopdeploy@hadoop01 sbin]$