HDFS的垃圾回收机制

Posted 格格巫 MMQ!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS的垃圾回收机制相关的知识,希望对你有一定的参考价值。

hadoop hdfs 垃圾回收机制
何为垃圾回收
开启垃圾回收站 把删除的文件首先放置在回收站中 等待配置的时间结束 进行真正的数据删除

如何开始
vim core-site.xml

fs.trash.interval 1440 把配置文件 scp给其他节点上 scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml node-2:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/

scp -r /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml node-3:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/
垃圾回收机制演示效果
未开启
[root@node-1 ~]# hadoop fs -rm /test/1.txt
Deleted /test/1.txt
开启
hadoop fs -rm /test/1.txt
19/07/18 16:18:17 INFO fs.TrashPolicyDefault: Moved: ‘hdfs://node-1:8020/test/1.txt’ to trash at: hdfs://node-1:8020/user/root/.Trash/Current/test/1.txt
本质是把删除文件 首先移动一个指定的文件夹下面

恢复删除的数据
hadoop fs -mv /user/root/.Trash/Current/test/1.txt /test
跳过垃圾回收 直接删除
skipTrash 选项删除文件,该选项不会将文件发送到垃圾箱。它将从HDFS 中完全删除

配置1
fs.trash.interval=1440

被删除的文件会进入回收站,默认保留1440分钟后完全删除

配置2
fs.trash.checkpoint.interval=60

回收站checkpoint机制:进入回收站的文件首先进入Current目录,然后定期移动到一个时间戳目录,定期的间隔为60分钟

过程
1 删除命令
hdfs dfs rm /tmp/test

2 进入回收站
hdfs:// n n / u s e r / nn/user/ nn/user/user_name/.Trash/Current/tmp/test

3 定时检查
hdfs:// n n / u s e r / nn/user/ nn/user/user_name/.Trash/Current/tmp/test

移动到

hdfs:// n n / u s e r / nn/user/ nn/user/user_name/.Trash/$yyMMddHH0000/tmp/test

4 定时检查(24小时后)
彻底删除

备注
在 步骤2 和 步骤3 之间,回收站里的数据随时可以恢复,移动会原来的位置即可

要格外注意的是,在 步骤2 时,有可能在操作过程中提示File Not Exists,这时不要惊慌,文件并没有丢失,其实是进行了 步骤3,文件移动到了另一个目录而已

以上是关于HDFS的垃圾回收机制的主要内容,如果未能解决你的问题,请参考以下文章

CM记录-HDFS清理垃圾回收站

9Hadoop配置文件和HDFS垃圾回收

5、垃圾回收机制

有垃圾回收机制为啥会出现内存溢出

垃圾回收机制与内存管理

JAVA垃圾回收机制的工作原理?