HDFS回收站

in Hadoop with 0 comment

默认回收站

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

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

启用回收站

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

<property>
    <name>fs.trash.interval</name>
    <value>1</value>
</property>

查看回收站

回收站在集群中的;路径:/user/xcp/.Trash/….

修改访问垃圾回收站用户名称

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

[core-site.xml]
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>xcp</value>
</property>

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

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

恢复回收站数据

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

清空回收站

hdfs dfs -expunge