HDFS的回收站(Trash)是一个用于临时存放被删除文件的机制,类似于操作系统中的回收站。它允许用户在误删文件后恢复数据,避免因误操作导致永久丢失。
一、回收站工作原理
1.执行流程
用户删除文件 → 文件进入回收站 → 等待 fs.trash.interval 时间 → 触发检查点 → 系统扫描回收站 → 删除所有过期文件
2.触发检查点条件
当前时间 - 上次检查点时间 ≥ fs.trash.checkpoint.interval
且
文件存在回收站中的时间 ≥ fs.trash.interval
3.删除文件的去向
当用户执行rm
命令删除文件时,文件不会立马从磁盘上消失,而是移动到回收站目录(默认路径:/user/$USER/.Trash
,用户在文件空窗期间恢复数据,为文件删除操作提供反悔机会。
二、回收站配置
1.关闭HDFS集群
stop-dfs.sh
2.修改core-site.xml文件
在hadoop01上修改core-site.xml文件
<!-- 开启回收站功能 -->
<!-- 保留24小时 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<!-- 立即同步interval,文件过期后马上检查 -->
<property>
<name>fs.trash.checkpoint.interval</name>
<value>0</value>
</property>
3.同步集群配置文件
scp /opt/installs/hadoop/etc/hadoop/core-site.xml hadoop@bigdata02:/opt/installs/hadoop/etc/hadoop/core-site.xml
scp /opt/installs/hadoop/etc/hadoop/core-site.xml hadoop@bigdata03:/opt/installs/hadoop/etc/hadoop/core-site.xml
4.启动hdfs集群
在hadoop01上启动集群
start-dfs.sh
三、回收站使用
1.删除文件
回收站开启后文件不会直接删除,而是移动到回收站
hdfs dfs -rm /a.txt
2.恢复文件
#文件恢复时可以恢复到与源文件不同的位置
hdfs dfs -mv /user/root/.Trash/Current/a.txt /home
3.跳过回收站直接删除
hdfs dfs -rm -skipTrash /home/a.txt
4.清理回收站
回收站在配置时已经配置自动删除,但也可以手动清空回收站来释放hdfs的空间
# 该命令会立马删除过期的文件
hdfs dfs -expunge