hdfs trash

  1. 回收站:
    https://blog.csdn.net/bitcarmanlee/article/details/51464886

https://blog.csdn.net/xuejingfu1/article/details/52528259

hadoop里的trash选项默认是关闭的。所以如果要生效,需要提前将trash选项打开。修改conf里的core-site.xml即可。我们集群的相关配置如下:

 <!--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是在指在这个回收周期之内,文件实际上是被移动到trash的这个目录下面,而不是马上把数据删除掉。等到回收周期真正到了以后,hdfs才会将数据真正删除。默认的单位是分钟,1440分钟=60*24,刚好是一天。
fs.trash.checkpoint.interval则是指垃圾回收的检查间隔,应该是小于或者等于fs.trash.interval


ExternalTrash

为指定用户添加回收站过期时间
【设置用户trash】
在etc/hadoop 下添加配置文件:externaltrash.xml
并配置:

<!--默认false不开启-->
<property>
    <name>fs.user.trash.interval.enable</name>
    <value>true</value>
</property>

<!--默认checkpoint间隔就是60分钟-->
<property>
    <name>fs.trash.checkpoint.interval.delta</name>
    <value>60</value>
</property>

<!--配置指定用户过期时间单位分钟-->
<property>
   <name>fs.user.$USER_NAME.trash.interval</name>
   <value>1440</value>
</property>

注意:

core-site.xml中必须已经配有:fs.trash.intervalfs.trash.checkpoint.interval 这两个配置。因为ExternalTrash在加载externaltrash.xml前,在构造器中会先读这两个值。

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

启动成功后,会有log显示指定用户的过期时间

less /home/hadoop/xxx/logs/hadoop-hadoop-externaltrash-bigdata-nmg-hdfsmaster01.nmg01.log

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。