HBASE 系列 一个RegionServer的Region数量多少合适?

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%的内存使用量。

.

    原文作者:水星有鱼
    原文地址: https://www.jianshu.com/p/45d7718147ff
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞