Hbase数据刷写

数据刷写

1.触发时机

  • MemStore内存默认是128M,当某个MemStore超过128M就会将其所在 region 的所有 memstore 都会刷写。
    • 如果我们数据增加的很快,哪怕一到128M就刷写数据量还是在增加(数据增加速度大于刷写速度),当MemStore达到128*4=512MB的时候,就会阻止客户端写入数据到该MemStore
  • 当 RegionServer的所有MemStore 占用内存总和大于总内存 *40% *95%的时候,整个RegionServer开始进行刷写
    • 如果达到了 RegionServer 级别的 Flush,当前 RegionServer 的所有写操作将会被阻塞,这个阻塞可能会持续到分钟级别
  • 当 WAL 文件的数量超过 hbase.regionserver.max.logs,region 会按照时间顺序依次进行刷写,直到 WAL 文件数量减小到 hbase.regionserver.max.log 以下(该属性名已经废弃,现无需手动设置,最大值为 32)
    • 数据到达 Region 的时候是先写入 WAL,然后再被写到 Memstore
    • 如果WAL 的数量越来越大,这就意味着 MemStore 中未持久化到磁盘的数据越来越多
    • 当 RS 挂掉的时候,恢复时间将会变得很长,所以有必要在 WAL 到达一定的数量时进行一次刷写操作
  • 自定义刷写的时间间隔,当达到自动刷写的时间,就会触发 memstore flush开始自动刷写
  • 在Shell 中通过执行 flush 命令
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值