面试题答案
一键面试Minor Compaction触发时机
- 文件数量阈值:当某个Region内的Store下的HFile数量达到一定阈值时,会触发Minor Compaction。这个阈值可通过配置参数进行调整,默认情况下该阈值相对较小。比如在某些场景下,当Store中的HFile数量达到3个(可配置),就会启动Minor Compaction。它会将较小的一些HFile合并成一个较大的HFile,以减少HFile的总数量,从而提升查询性能。
Major Compaction触发时机
- 时间周期:默认情况下,Major Compaction会按照一定的时间周期触发,通常是7天(可配置)。到了设定的周期时间,就会对Region内的所有Store进行Major Compaction。它会将该Region下Store中的所有HFile进行合并,生成一个新的HFile,同时清理掉已标记删除的数据和过期的版本数据。
- 手动触发:管理员也可以根据实际需求手动触发Major Compaction,例如在需要彻底清理无效数据、优化存储布局等情况下,通过HBase的管理命令或者API来执行Major Compaction操作。