返回 导航

大数据

hangge.com

Hadoop - 启用HDFS回收站功能教程(防止文件误删)

作者:hangge | 2024-06-30 07:45
    在日常操作中,误删除文件是不可避免的,为了避免数据丢失,HDFS 提供了回收站功能。启用回收站功能后,删除的文件将首先被移动到回收站,而不是立即被删除,从而为恢复误删文件提供了可能性。本文将详细介绍如何在 HDFS 中启用和配置回收站功能。

1,修改 HDFS 配置文件

(1)默认情况下 hdfs 的回收站是没有开启的,需要我们编辑 core-site.xml 这个配置文件,该文件通常位于 Hadoop 的配置目录中,例如 $HADOOP_HOME/etc/hadoop
vi /usr/local/hadoop/etc/hadoop/core-site.xml

(2)添加以下配置项即可启用 HDFS 回收站功能,其中 value 的单位是分钟,1440 分钟表示一天清空一次回收站。设置为 0 表示禁用回收站功能。
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

2,重启 Hadoop 服务

修改配置文件后,需要重启 Hadoop NameNode DataNode 服务以使配置生效。可以通过以下命令重启服务:
sbin/stop-all.sh
sbin/start-all.sh

3,验证回收站功能

(1)首先我们执行如下命令删除一个文件:
hadoop fs -rm /hangge/test.txt

(2)执行后可以看到提示信息说把删除的文件移到到了指定回收站目录中:


(3)删除的文件将被移动到回收站目录,默认是 /user/$USER/.Trash。可以使用以下命令检查回收站目录:
hadoop fs -ls /user/root/.Trash

4,恢复文件

如果需要恢复误删的文件,可以从回收站目录将文件移动回原来的位置,例如执行下面命令恢复文件到原来的目录:
提示:回收站的文件也是可以下载到本地的。其实在这回收站只是一个具备了特殊含义的 HDFS 目录。
hadoop fs -mv /user/root/.Trash/Current/hangge/test.txt /hangge/

5,清空回收站

根据配置的清空间隔,回收站会自动清空。如果需要手动清空回收站,可以使用以下命令:
hadoop fs -expunge

6,直接删除文件不经过回收站

删除时可以指定参数 -skipTrash,表示删除的文件不会进回收站:
注意:如果删除的文件过大,超过回收站大小的话会提示删除失败。我们也可以指定参数 -skipTrash 将文件直接删除。
hadoop fs -rm -skipTrash /hangge/test.txt
评论

全部评论(0)

回到顶部