为什么要进行StoreFile Compaction
由于MemStore每次刷写都会生成一个新的HFile,且同一个字段的不用版本和不同类型有可能分布在不同的HFile中,因此查询时需要遍历所有的HFile。为了减少HFile的个数,以及清理掉过期和删除的数据。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/aa6a87a314400a86e5a26e417134fd4c.png)
StoreFile Compaction
- Minor Compaction
会把邻近的若干个较小的HFile合并成一个较大的HFile,但是不会清理过期和删除的数据。 - Major Compaction
会把一个Store下所有的HFile合并成一个大的HFile,并且会清理掉过期和删除的数据。