HBase你真的了解吗?( 三 )
6.5 MemStore Flush
- 触发条件
- MemStore级别限制:当Region中任意一个MemStore的大小达到了上线 , 会触发MemStore刷新hbase.hregion.memstore.flush.size 默认128M
- Region级别限制:当Region中所有的MemStore的大小和总和达到了上线会触发MemStore刷新hbase.hregion.memstore.block.multiplier*hbase.hregion.memstore.flush.size
- RegionServer级别限制:当RegionServer中MemStore的大小中和超过低水位阈值 , RegionServer开始强制执行flushhbase.regionserver.global.memstore.size.lower.limit*hbase.regionserver.global.memstore.size
- 当一个RegionServer中HLog数量达到上线时 , 系统会选取最早的HLog对应的一个或多个Region进行flushhbase.regionserver.maxlogs
- HBase定期刷新MemStore:默认周期为1小时 , 确保MemStore不会长时间没有持久化
- 手动执行flush:用户可以通过shell命令flush 'tablename' 或者 flush 'regionname'分别对一个表或者一个Region进行flush
- Compacton分类
- Minor Compaction 是值选取部分小的、相邻的HFile , 将他们合并成一个更大的HFile 。
- Major Compaction 是指将一个Store中所有的HFile合并成一个HFile , 这个过程还会清理三类无意义的数据:被删除的数据、TTL过期数据、版本号超过超过设定版本号的数据
- Compaction时机
- MemStore Flush:MemStore Flush会产生HFile文件 , 因此在每次执行完后 , 都会对当前Store中的文件数进行判断 , 一旦Store中总文件数大于hbase.hstore.compactionThrshold , 就会触发Compaction 。
- 后台线程周期性检查:RegionServer会在后台启动一个线程CompactionChecker , 定期触发检查对应Store是否要执行Compaction 。 检查周期算法hbase.server.thread.wakefrequency*hbase.server.compactchecker.interval.multiplier
- 手动触发
- HBase已经有6种Split触发策略 , 常见的Split策略如下:
文章插图- ConstantSizeRegionSplitPolicy:表式一个Region中最大Stroe的大小超过设置阈值(hbase.hregion.max.filesize)之后会触发分裂 。
- IncreasingToUpperBoundRegionSplitPolicy:一个Region中最大Store的大小超过设置阈值就会触发分裂 。 但是这个阈值并不像ConstantSizeRegionSplitPolicy是一个固定的值 , 而是在一定条件下不断调整 , 调整后的阈值大小和Region所属表在当前RegionServer上的Region个数有关系 , 调整后的阈值等于(#regions)*(#regions)*(#regions)* flush size * 2 , 当然阈值并不会无线增大 , 最大值为用户设置的MaxRegionFileSize 。
- SteppingSplitPolicy:这种分裂阈值也发生了变化 , 相比第二种方式简单了一些 , 分裂阈值大小和待分裂Region所属表在当前RegionServer上的Region个数有关系 , 如果Region个数等于1 , 分裂阈值为 flush size * 2 , 否则为MaxRegionFileSize 。
- Pre Split如果知道hbase数据表的key的分布情况 , 就可以在建表的时候对hbase进行region的预分区 。 这样做的好处是防止大数据量插入的热点问题 , 提高数据插入的效率 。
- iQOO 7邀请函曝光“马”“鸭”“羊”代表什么
- 只需799元就可以把旧iPad换成新款iPad?是真的!但这羊毛可没那么容易薅
- 更便宜的米11系列新品要来了,小米11Lite了解下
- 华为手机备忘录真的太赞了,居然集成了7大功能,个个都非常实用
- 爱立信突然宣布!瑞典“坏消息”从天而降?华为5G真的没辙了?
- 真的开始普及了,全天候全地形按摩放松神器
- 人工智能正在了解人类的“言外之意”
- “低价误国,高价兴邦”,小米真的做错了吗?
- APP真的能偷听吗?千款APP被检查,专家:可以实现
- 华为要让专家当家,你了解华为吗?华为对于中国创业者真正的意义
