[HD] 关于HDFS垃圾站回收机制的参数调整fs.trash.interval

内容来自于和HUAWEI的项目沟通。

 

问题说明:有些天Trash目录的大小达到30~40T ,需要考虑调整缩小回收站回收时间。

分析:

在hdfs上有一个回收站的设置,可以将删除的数据存在目录”/user/$/.Trash/”中,设置回收站的参数如下:

fs.trash.interval=1440

以分钟为单位的垃圾回收时间,垃圾站中数据超过此时间,会被删除。

 

fs.trash.checkpoint.interval=60

以分钟为单位的垃圾回收检查间隔(这个应该是检查回收站过期的数据定期的删除。)。应该小于或等于fs.trash.interval。

 

综上:HDFS会在每一个用户目录下创建一个回收站目录,即:/user/username/.Trash。每一个被删除的文件和目录,都会有一个回收周期(fs.trash.interval)。

在这个回收周期内,文件实际上会被移动到这个回收站目录下面,可以被用户手动进行恢复。当回收周期到达时,HDFS就会将这个文件/目录彻底删除。

在文件刚被删除的时候,会被移动到/user/admin/.Trash/Current 目录,随着下一个检查周期<fs.trash.checkpoint.interval>的到来,文件会被移动到 /user/admin/.Trash/170620145800 时间戳目录。

 

即当前每小时增量扫描一次回收站的current目录,然后将扫描到的文件放入到/user/admin/.Trash/170620145800 时间戳目录,并且将超过24小时的文件删除。

 

如果现网只是将fs.trash.interval 参数调整小(如2小时),hdfs的扫描文件量不会增加,只是进入回收站只保留最近2小时的文件,误删文件只能在2小时内找回,性能完全不变。

 

如果现网将fs.trash.checkpoint.interval参数也同时调小,hdfs会每半小时扫描一次current目录,并且删除一次超期数据 —–à 扫描和删除次数变多,且每次扫描和删除的量变少,HDFS性能可能会受到少量影响。

 

结论:建议现网fs.trash.checkpoint.interval 不变,fs.trash.interval 可以调小为大于1小时的值,这样HDFS的性能完全不变。

 

建议:fs.trash.interval 调整到2小时。

 

分类上一篇:     分类下一篇:

Leave a Reply