Hadoop HDFS trash 回收站

时间:2024-10-19 12:52:09

HDFS回收站默认是不开启的。

name value description
0 删除文件的存活时间,单位分钟,如果是0禁用回收站;可以在服务端及客户端配置此参数;如果服务端禁用了,则检查客户端配置;如果服务端启用了,则忽略客户端配置
0 垃圾检查点之间的分钟数,应小于或等于; 如果为0,则该值设置为的值;每次检查点运行时,都会在当前之外创建一个新的检查点,并删除之前创建的超过的检查点
在网页界面访问数据使用的用户名。默认值是一个不真实存在的用户,此用户权限很小,不能访问不同用户的数据。这保证了数据安全。也可以设置为hdfs和hadoop等具有较高权限的用户,但会导致能够登陆网页界面的人能看到其它用户数据。实际设置请综合考虑。如无特殊需求。使用默认值就好

配置

配置垃圾回收时间为2分钟,修改访问垃圾回收站用户名称。
进入垃圾回收站用户名称,默认是 ,修改为 root 用户

<!-- 指定删除文件的存活时间 -->
<property>
    <name></name>
    <value>2</value>
</property>
<!-- 垃圾检查点之间的分钟数 -->
<property>
    <name></name>
    <value>1</value>
</property>
<!-- 指定在网页界面访问数据使用的用户名 -->
<property>
    <name></name>
    <value>root</value>
</property>

测试

删除前

[root@hadoop101 hadoop]# hdfs dfs -rm -r /tmp
19/04/01 02:30:38 INFO : Namenode trash configuration: Deletion interval = 2 minutes, Emptier interval = 0 minutes.
Moved: 'hdfs://hadoop101:9000/tmp' to trash at: hdfs://hadoop101:9000/user/root/.Trash/Current

回收站

如果不修改则报如下错

到了存活时间,内容自动被删除。

恢复回收站数据

在数据没有清空前,可以恢复数据。

[root@hadoop101 hadoop]# hdfs dfs -mv /user/root/.Trash/Current/tmp /tmp

清空回收站

[root@hadoop101 hadoop]# hdfs dfs -expunge
19/04/01 02:44:10 INFO : Namenode trash configuration: Deletion interval = 2 minutes, Emptier interval = 0 minutes.