垃圾回收策略
- 同linux系统,hdfs会为每个用户创建一个回收站目录, /user/用户名/.Trash,每个被用户用hdfs dfs -rm [-r] 删除的文件、目录,都会放到 /user/用户名/.Trash 目录中
- 用户若删除了某个文件、目录,可以在用户垃圾回收站恢复该文件、目录
- /user/用户/.Trash/Current目录仅仅保存被删除 文件的最近一次拷贝
测试
1.上传
hdfs dfs -put yunsong_applist.sh /tmp/demo
2.删除文件,文件移动到当前用户的垃圾回收站,如果存在相同文件,则会新移入文件重命名[后缀时间戳]
hdfs dfs -rm /tmp/demo/yunsong_applist.sh
21/05/27 19:41:57 INFO fs.TrashPolicyDefault: Moved: 'hdfs://localhost/tmp/demo/yunsong_applist.sh' to trash at: hdfs://wdp-offline/user/appweb/.Trash/Current/tmp/demo/yunsong_applist.sh
3.恢复-从用户回收站目录移动到原目录
hdfs dfs -mv /user/appweb/.Trash/Current/tmp/demo/yunsong_applist.sh /tmp/demo
- 在达到设置的垃圾回收策略设定的过期时间后,hdfs 中NameNode的后台线程Emptier[专门管理和监控系统回收站下的所有文件/目录],会根据过期策略对每个用户垃圾回收站目录进行扫描,达到过期时间的进行删除,但管理的粒度较大
- 从回收策略来看,用户删除文件后,最多可在垃圾回收站保存 2*interval分钟,最少可保存interval分钟,过了有效期,无法恢复
设置垃圾回收策略
<property>
<name>fs.trash.interval</name>
<!-- 单位:分钟 -->
<value>1440</value>
</property>