HADOOP-HDFS 自动清除Trash以释放空间

HDFS should support Auto-Emptier to automatically expunge trash for releasing space.

HADOOP-HDFS需要有一个Auto-Emptier 线程来自动清除trash, 以释放HDFS的总使用空间, 该功能可以配置为可选项, 可以在Configuration下增加这两个参数以供配置.

1. fs.trash.autoemptier.interval 执行空间检查的时间时间隔, 设置为0时, 禁用该功能, 默认为20 Seconds.
2. fs.trash.max.percentused 当已使用空间率大于该值, 执行回收以释放空间. 默认为0.8f

这个功能只是个人的倾向而已, 并没有新建Feature到Apache, 欢迎同志们拍砖.

float percent = namenode.namesystem.getCapacityUsedPercent();
if(percent < 1 && percent >= maxPercentUsed) {
Path path = new Path(fs.getHomeDirectory(), TRASH);
/*Trash trash = new Trash(path, conf);
trash.expunge();
trash.checkpoint();*/
long space = 0;
if (!fs.exists(path)
|| (space = fs.getFileStatus(path).getLen()) == 0) {
continue;
}
if(!fs.delete(path, true)){
LOG.warn("Failed to expunge trash for releasing space.");
} else {
LOG.info("Auto-emptier, expunge trash for releasing space: " + FsShell.byteDesc(space));
}
}


由于博客标题长度的限制, 标题里开头少写了HDFS字样. 源码见于附件.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值