《HBase权威指南》读书笔记 第八章:架构,Compaction合并

compaction合并操作

compaction操作将小文件合并成大文件,加快查询速度,减少文件数量,减少资源占用。compaction分为两种:

  • minor compaction:将一个region中一部分小文件合并到一个新的文件中
  • major compaction:将一个region中所有文件都合并到一个文件中。在这个过程中剔除已删除的数据、剔除多于的多版本数据。

HBase会在以下几种情况下检查是否进行合并:

  • 当memstore刷写到磁盘时
  • 当检查线程定时检查时。检查线程的频率由参数hbase.server.thread.wakefrequencyhbase.server.thread.wakefrequency.multiplier控制。
  • shell中执行compaction或者major_compaction命令时

当检查到需要合并时,HBase根据以下配置项判断是否需要进行major合并:

  • hbase.hregion.majorcompaction:默认是24小时
  • hbase.hregion.majorcompaction.jitter:抖动,默认是20%

以上两个参数意味着major合并周期为随机取19.2小时~28.8小时之间的数值。当major合并周期还未到达时,执行minor合并。

minor合并根据以下参数选择要合并的文件,并判断是否达到合并阈值:

  • hbase.hstore.compaction.min:最少合并的文件数量,默认是3,表示最少合并3个文件
  • hbase.hstore.compaction.max:最多合并的文件数量,默认是10,表示最多合并10个文件。如果一次合并的文件过多,可能会导致minor合并速度变慢
  • hbase.hstore.compaction.min.size:需要合并的文件大小总和如果达不到这个值就不进行合并。默认是memstore刷写阈值。
  • hbase.hstore.compaction.max.size:文件大小超过这个值的将会被排除在外。默认是Long.MAX_VALUE表示没有限制。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值