默认是关闭的,需要手动打开,修改配置 core-site.xml
添加:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
<!-- 在回收站停留時間 单位是分钟 -->
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>1440</value>
<!-- 檢查回收站的時間間隔 小于等于上面的值-->
</property>
如果打开了回收站,hdfs会为每个用户都建一个回收站,用户删除文件时,文件并不是彻底地消失了,
而是mv到了/user/用户名/.Trash/这个文件夹下,在一段时间内,用户可以恢复这些已经删除的文件。
如果用户没有主动删除,那么系统会根据用户设置的时间把文件删除掉,用户也可以手动清空回收站,
这样删除的文件就再也找不回来了
JavaAPI: Trash trash = new Trash(fs, conf);
trash.moveToTrash(new Path("/xxxx"));
Shell: 如果你想直接删除某个文件,而不把其放在回收站,就要用到-skipTrash命令
例如:hadoop fs -rm -r -skipTrash /test
查看回收站:hadoop fs -ls /user/hadoop/.Trash/Current