HBase Major Compaction 大合并(写放大) 作者:马育民 • 2021-11-28 09:54 • 阅读:10174 # 作用 [![](/upload/0/0/1IX4HYaVzVnj.jpg)](/upload/0/0/1IX4HYaVzVnj.jpg) 将某一个Column family的所有HFile重新整理并合并为一个HFile 也可以理解成:将一个Region下的所有 `StoreFile` 合并成一个`StoreFile` 文件 在大合并的过程中,将之前 **删除的行、cell** 和 **过期的版本([TTL过期](https://www.malaoshi.top/show_1IX2JClZMsIE.html "TTL过期"))** 都会 **删除**,更新现有cell的值 ### 优点 大大提升读的效率 ### 缺点 需要重新整理 Region 下 所有的HFile,并写入一个HFile,这一过程包含大量的硬盘I/O操作以及网络数据通信,当前Region **基本是处于不可访问的状态**。 ### 写放大 这一过程也称为写放大(Write amplification) # 一般禁用该功能 禁止自动运行 由于Major Compaction会占用大量的磁盘和网络IO,会严重的影响集群的性能 ### 禁用的缺点 不进行Major Compaction,StoreFile 文件过多,且含有大量 **删除的行** 和 **过期的版本(TTL过期)**,会对集群非常不利 ### 解决 一般在 **夜间**,**集群负载较低** 时,通过 **定时任务脚本** 执行 #### 执行周期 一般一周做一次 原文出处:http://malaoshi.top/show_1IX2JBOFVVVy.html