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.