1. 简介
hudi采用的是mvcc设计,提供了清理工具cleaner来把旧版本的文件分片删除,默认开启了清理功能,可以防止文件系统的存储空间和文件数量的无限增长。
1.1 环境
- flink 1.13.6
- hudi 0.11.0
1.2 清理保留策略
清理旧文件需要考虑数据查询的情况,有些长查询会占用着旧版本的文件,需要设置合适的清理策略来保留一定数量的commit或者文件版本,以提高系统的容错性
- KEEP_LATEST_COMMITS:默认策略,表示保留最后n次提交,默认为10,通过参数hoodie.cleaner.commits.retained或clean.retain_commits(flink)设置
- KEEP_LATEST_FILE_VERSIONS:保留最后n个文件版本,默认为3,通过参数hoodie.cleaner.fileversions.retained设置
- KEEP_LATEST_BY_HOURS:保留最后n小时,默认24小时,通过参数hoodie.cleaner.hours.retained设置,这是0.11版本后新增的
1.3 清理触发策略
目前仅支持一种触发清理的策略:CleaningTriggerStrategy#NUM_COMMITS,即根据提交的次数,默认为1,可以通过设置参数hoodie.clean.max
本文介绍了Hudi的旧文件清理机制,包括清理保留策略和触发策略。Hudi使用MVCC设计,通过cleaner工具删除旧版本文件,防止存储空间和文件数量无限制增长。清理策略包括基于提交次数、文件版本和时间保留。清理流程涉及初始化、启动入口和逻辑执行,包括生成清理计划、刷新ActiveTimeline缓存以及执行清理计划。
订阅专栏 解锁全文
3502

被折叠的 条评论
为什么被折叠?



