Apache Doris删除表后如何立即回收磁盘空间/快速清理Tablet?
Apache Doris 2.1.7 删除表后BE节点Tablet未及时清理的解决办法
Doris执行DROP TABLE后,表会从元数据中移除,但BE节点上的Tablet文件不会立即删除,而是进入垃圾回收(GC)流程,默认配置下的延迟周期会导致文件留存数小时。以下是针对性的解决方法:
一、调整GC配置以缩短宽限期
1. FE端全局配置修改
编辑FE节点的fe.conf文件,调整以下参数:
gc_interval_seconds:GC任务执行间隔,默认3600秒(1小时),可改为1800(30分钟)drop_table_wait_time_seconds:表标记删除后到执行清理的等待时间,默认86400秒(24小时),按需调整为3600(1小时)
修改后重启FE节点生效:
sh bin/fe.sh restart
2. BE端本地清理配置修改
编辑BE节点的be.conf文件,调整:
delete_garbage_interval_sec:BE本地垃圾文件清理间隔,默认3600秒,可改为1800storage_clean_wait_time:Tablet标记删除后BE保留文件的等待时间,默认86400秒,调整为3600
修改后重启BE节点生效:
sh bin/be.sh restart
二、手动触发GC紧急回收空间
若需立即清理,无需等待自动周期,可执行以下操作:
1. 触发FE元数据GC
在Doris客户端执行SQL命令,强制FE下发已超时待删除Tablet的清理指令:
ADMIN CLEANUP TABLET;
2. 触发BE本地文件清理
在每个BE节点上执行HTTP请求,强制清理本地垃圾文件:
curl -X POST http://<BE_IP>:8040/api/cleanup
替换<BE_IP>为实际BE节点的IP地址,默认BE HTTP端口为8040,若已修改需对应替换。
三、验证清理效果
- 检查FE端待删除Tablet状态:
SHOW TABLET WHERE status = 'DELETED';
若结果为空,说明FE已完成元数据层面的清理指令下发。
- 查看BE节点磁盘空间变化,或检查BE存储目录(由
storage_root_path配置指定)下是否还存在目标表的Tablet文件夹(以tablet_id命名)。
内容的提问来源于stack exchange,提问作者user8589466
相关产品推荐
相关产品推荐

