Hadoop回收站trash,默认是关闭的。开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。
启用回收站
在core-site.xml中配置如下参数,建议设置:
fs.trash.interval 1440 minutes(1天),fs.trash.checkpoint.interval120 minutes(2小时)
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>
开启回收站功能参数说明
(1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。单位:分钟
(2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。单位:分钟
(3)要求fs.trash.checkpoint.interval <= fs.trash.interval。
回收站的位置
不用重启集群即可生效
在HDFS上的 /user/$USER/.Trash/Current/
可以看到已有文件存放到回收站
清空回收站
hdfs dfs -expunge
执行完命令后,回收站的数据不会立即被清理,而是先打了一个checkpoint。显示的是一分钟后清除。
直接删除文件(不放入回收站)
hdfs dfs -rm -skipTrash /tmp/aaa
如果不加-skipTrash,删除的目录会放入/user/hdfs/.Trash中。有专门的配置项来指定什么时候清空回收站。