我爱编程

HBASE 系列 一个RegionServer的Region数量

2017-08-25  本文已影响0人  不务正业的coder

HBase 官方文档说一个RegionServer被设计跑20200个regions,数据大小约550Gb。

但是,建议regions在100个左右。

首先 ,理解一个概念『MSLAB』,即MemStore-Local Allocation Buffer。

每个store都有一个memstore,为了避免在大量数据写入,堆中产生很多碎片,导致stop-the-world GC出现,设置hbase.hregion.memstore.mslab.enabled,来预防此问题。即本地MemStore允许分配的内存大小。

当一个HRegion中的所有MemStore的大小总和超过了hbase.hregion.memstore.flush.size的大小,默认128MB。此时当前的HRegion中所有的MemStore会Flush到HDFS中。

当全局MemStore的大小超过了hbase.regionserver.global.memstore.upperLimit的大小,默认40%的内存使用量。此时当前HRegionServer中所有HRegion中的MemStore都会Flush到HDFS中,Flush顺序是MemStore大小的倒序,直到总体的MemStore使用量低于hbase.regionserver.global.memstore.lowerLimit,默认38%的内存使用量。

.

上一篇下一篇

猜你喜欢

热点阅读