HBase参数配置及说明 - 杰我天下 - 博客园 (cnblogs.com)
HBase之五:hbase的region分区 - duanxz - 博客园 (cnblogs.com)
HBase Region 自动拆分策略 - 腾讯云开发者社区-腾讯云 (tencent.com)
(162条消息) HBase Region 简介和建议数量&大小_Mumunu-的博客-CSDN博客
flush:将写缓存中的数据,上传到hdfs上,每次flush后,每个写缓存中的列族文件都会在hdfs上产生一个存储文件。
MemStore 刷写时机:
1.当某个 memstroe 的大小达到了
hbase.hregion.memstore.flush.size(默认值 128M),
其所在 region 的所有 memstore 都会刷写。 当 memstore 的大小达到了
hbase.hregion.memstore.flush.size(默认值 128M) * hbase.hregion.memstore.block.multiplier(默认值 4)
时,为防止写缓存中的数据堆积,RegionServer会阻止继续往该 memstore 写数据。
2.当 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 的总大小减小到上述值以下。 当 region server 中 memstore 的总大小达到
java_heapsizehbase.regionserver.global.memstore.size(默认值 0.4)
时,会阻止继续往所有的 memstore 写数据。
3. 到达自动刷写的时间,也会触发 memstore flush。自动刷新的时间间隔由该属性进行
配置 hbase.regionserver.optionalcacheflushinterval(默认 1 小时)。
Region Split时机:
当1个region中的某个Store下所有StoreFile的总大小超过Min(initialSize*R^3 ,hbase.hregion.max.filesize")
,该Region就会进行拆分。
initialSize的默认值为2*hbase.hregion.memstore.flush.size(128M),
R为当前Region Server中属于该Table的Region个数。
hbase.hregion.max.filesize 默认10G
总结一下就是,使用IncreasingToUpperBoundRegionSplitPolicy策略,Region最大容量为: 256M -> 2GB -> 6.75GB -> 10GB -> 10GB -> ...