作用
将某一个Column family的所有HFile重新整理并合并为一个HFile
也可以理解成:将一个Region下的所有 StoreFile 合并成一个StoreFile 文件
在大合并的过程中,将之前 删除的行、cell 和 过期的版本(TTL过期) 都会 删除,更新现有cell的值
优点
大大提升读的效率
缺点
需要重新整理 Region 下 所有的HFile,并写入一个HFile,这一过程包含大量的硬盘I/O操作以及网络数据通信,当前Region 基本是处于不可访问的状态。
写放大
这一过程也称为写放大(Write amplification)
一般禁用该功能
禁止自动运行
由于Major Compaction会占用大量的磁盘和网络IO,会严重的影响集群的性能
禁用的缺点
不进行Major Compaction,StoreFile 文件过多,且含有大量 删除的行 和 过期的版本(TTL过期),会对集群非常不利
解决
一般在 夜间,集群负载较低 时,通过 定时任务脚本 执行
执行周期
一般一周做一次
