hadoop2 hdfs 垃圾箱简介

hdfs为每一个用户创建一个回收站:
目录: /user/用户名/.Trash/  每一个被用户通过shell删除的文件/目录
在系统回收站中都有一个周期,周期过后hdfs会自动将这些数据彻底删除
周期内 可以被用户恢复。

回收站样子如下:

/user/用户名/.Trash/Current/文件

eg:

/user/root/.Trash/Current/mydir

 
shell下 可通过 mv 操作将回收站数据返回hdfs中:

[root@h2single511-115 bin]# hdfs dfs -mv /user/root/.Trash/Current/mydir/input /mydir/input

配置:默认值是0 即没有启用回收站
每个节点core-site.xml内增加:

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

而通过Java端删除文件,默认下是不进入垃圾箱的,如果仍想让文件也入回收站 写法如下:


 

//删除  将文件放在回收站中
  final Trash trash = new Trash(fileSystem, fileSystem.getConf()); //创建回收站
  trash.moveToTrash(new Path("/dir1/file1"));// 将文件放在回收站中
  fileSystem.delete(new Path("/dir1/file1"), true);// 删除文件 hdfs删除文件是直接删掉 不会进入回收站 上面操作是将文件先拷贝到回收站在去删除该文件

 

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2174698