hbase Compact流程

hbase Compaction 

以牺牲磁盘io来换取读性能的基本稳定

小合并:一个region下一个store中的部分HFile合并成一个比较大的StoreFile.

大合并:一个region下一个store中的所有HFile合并成一个更大的HFile.会清理ttl过期,版本超限定,标记删除的数据。

合并流程:

1.hbase基于1、Memstore Flush(每次memstore在flush之后都会判断是否触发Compaction) 2、后台线程周期性检查、3、手动触发 某种触发条件触发Compaction.

2.hbase会单独有一个线程进行从该store中选择合适的HFile。

3.针对小合并,大合并,split等操作都会有对应的线程池进行处理

4.分别读出待合并Hfile文件的数据(K,V),进行归并排序,之后写到./tmp临时文件中。

5.将临时文件移动到对应的Store的数据目录

6.将Compaction的输入文件路径和输出路径封装成KV写入到HLog日志,并打上Compaction标记,最后强制执行sync。

7.将对应的Store数据目录下的Compaction输入文件全部删除。

优缺点

会尽量提高数据的本地化率,因为有些文件是在远程节点存储,通过Compaction会尽量本地化。降低数据读取响应延时,减少网络IO。

在Compaction过程中会对读请求造成较大的毛刺,为了使文件数趋于稳定,在操作过程中会有带宽压力和IO压力。

以牺牲短时间的性能资源来换取后续查询的稳定。

在Compaction过程中也会对写请求造成阻塞,比如Hfile较多时,达到默认配置可能会限制写请求的速度或者短时间的阻塞。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值