默认回收站

默认值fs.trash.interval=0,0表示禁用回收站,可以设置删除文件的存活时间

默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间.如果该值为0,则该值设置和fs.trash.interval的参数值相等

要求fs.trash.checkpoint.interval<=fs.trash.interval

image.png

启用回收站

修改core-site.xml,配置垃圾回收时间为1分钟

  1. <property>
  2. <name>fs.trash.interval</name>
  3. <value>1</value>
  4. </property>

查看回收站

回收站在集群中,路径

  1. user/x/.Trash/

修改

修改访问垃圾回收站用户名称
进入垃圾回收站用户名称,默认是dr.who修改为x用户

core-site.xml

<property>
    <name>hadoop.http.staticuser.user</name>
    <value>x</value>
</property>

要重启集群

注意

通过程序删除的文件不会经过回收站,需要调用moveToTrash()才进入回收站

Trash trash = new Trash(conf);
trash.moveToTrash(path);

恢复

恢复回收站的数据

hadoop fs -mv /user/x/.Trash/Current/user/x/input /user/x/input

清空回收站

并没有立即删除

hadoop fs -expunge