https://blog.csdn.net/xuejingfu1/article/details/52528259
hadoop里的trash選項(xiàng)默認(rèn)是關(guān)閉的。所以如果要生效,需要提前將trash選項(xiàng)打開。修改conf里的core-site.xml即可。我們集群的相關(guān)配置如下:
<!--Enabling Trash-->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>1440</value>
</property>
1440分鐘就是1天。
fs.trash.interval是在指在這個(gè)回收周期之內(nèi),文件實(shí)際上是被移動(dòng)到trash的這個(gè)目錄下面,而不是馬上把數(shù)據(jù)刪除掉。等到回收周期真正到了以后,hdfs才會(huì)將數(shù)據(jù)真正刪除。默認(rèn)的單位是分鐘,1440分鐘=60*24,剛好是一天。
fs.trash.checkpoint.interval則是指垃圾回收的檢查間隔,應(yīng)該是小于或者等于fs.trash.interval。
ExternalTrash
為指定用戶添加回收站過期時(shí)間
【設(shè)置用戶trash】
在etc/hadoop 下添加配置文件:externaltrash.xml
并配置:
<!--默認(rèn)false不開啟-->
<property>
<name>fs.user.trash.interval.enable</name>
<value>true</value>
</property>
<!--默認(rèn)checkpoint間隔就是60分鐘-->
<property>
<name>fs.trash.checkpoint.interval.delta</name>
<value>60</value>
</property>
<!--配置指定用戶過期時(shí)間單位分鐘-->
<property>
<name>fs.user.$USER_NAME.trash.interval</name>
<value>1440</value>
</property>
注意:
core-site.xml中必須已經(jīng)配有:fs.trash.interval 、 fs.trash.checkpoint.interval 這兩個(gè)配置。因?yàn)?code>ExternalTrash在加載externaltrash.xml前,在構(gòu)造器中會(huì)先讀這兩個(gè)值。
fs.trash.checkpoint.interval 值不能<=0,也不能大于 fs.trash.interval 的值。
重啟externalTrash:
~/hadoop-current/sbin/hadoop-daemon.sh stop externaltrash
~/hadoop-current/sbin/hadoop-daemon.sh start externaltrash
啟動(dòng)成功后,會(huì)有l(wèi)og顯示指定用戶的過期時(shí)間
less /home/hadoop/xxx/logs/hadoop-hadoop-externaltrash-bigdata-nmg-hdfsmaster01.nmg01.log