栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Hbse MemStore Flush && StoreFile Compaction

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hbse MemStore Flush && StoreFile Compaction

1,MemStore Flush

MemStore刷写时机: memestore级别

1.当某个memstroe的大小达到了hbase.hregion.memstore.flush.size(默认值128M),其所在region的所有memstore都会刷写。

2.当memstore的大小达到了 hbase.hregion.memstore.flush.size(默认值128M)* hbase.hregion.memstore.block.multiplier(默认值4)
时,会阻止继续往该memstore写数据。

region server级别

1.当region server中memstore的总大小达到
java_heapsize *hbase.regionserver.global.memstore.size(默认值0.4) *hbase.regionserver.global.memstore.size.lower.limit(默认值0.95),
region会按照其所有memstore的大小顺序(由大到小)依次进行刷写。直到region server中所有memstore的总大小减小到上述值以下。

2.当region server中memstore的总大小达到
java_heapsize *hbase.regionserver.global.memstore.size(默认值0.4)
时,会阻止继续往所有的memstore写数据。

自动刷些时间

3.到达自动刷写的时间,也会触发memstore flush。自动刷新的时间间隔由该属性进行配置hbase.regionserver.optionalcacheflushinterval(默认1小时)

WAL 级别

4.当WAL文件的数量超过hbase.regionserver.max.logs,region会按照时间顺序依次进行刷写,直到WAL文件数量减小到hbase.regionserver.max.log以下(该属性名已经废弃,现无需手动设置,最大值为32)。


2,StoreFile/Hfile Compaction

1,由于memstore每次刷写都会生成一个新的HFile,且同一个字段的不同版本(timestamp)和不同类型(Put/Delete)有可能会分布在不同的HFile中,因此查询时需要遍历所有的HFile。
为了减少HFile的个数,以及清理掉过期和删除的数据,会进行StoreFile Compaction。

2,Compaction分为两种,分别是Minor Compaction和Major Compaction。

Minor Compaction会将临近的若干个较小的HFile合并成一个较大的HFile,并清理掉部分过期和删除的数据。
Major Compaction会将一个Store下的所有的HFile合并成一个大HFile,并且会清理掉所有过期和删除的数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号