HBase的合并操作

compact的作用

flush操作会将memstore的数据落地为一个个StoreFile(HFile),那么随着时间的增长在HDFS上面就会有很多的HFile文件,这样对读操作会产生比较大的影响(读操作会对HFile进行归并查询),并且对DataNode的压力也会比较大。为了降低对读操作的影响,可以对这些HFile进行compact操作,但是compact操作会产生大量的IO,所以可以看出compact的本质就是用IO操作换取后续读性能的提升。

minor compaction (小合并)

  1. 选取部分小的、相邻的HFile文件,形成一个较大的HFile文件。
  2. 小合并并不会进行过期数据的清除工作。

major compaction(大合并)

  1. 合并所有的HFile文件为一个大的HFile文件
  2. 大合并会清理TTL过期数据、超出设定版本号的数据以及delete标记的数据
  3. 一般是手动进行,将参数hbase.hregion.majorcompaction的值设为0,表示禁用major compaction。其默认值为7天,允许上下浮动hbase.hregion.majorcompaction * hbase.hregion.majorcompaction.jitter的值,后者默认是0.5。即[7 - 70.5, 7 + 70.5]

触发条件

你可能感兴趣的:(HBase)