hbase2.0.3 内存规划

读多写少

由于业务场景的需要,我们hbase偏读多写少的,虽然hbase读的速度会慢于写的速度。搭建hbase集群,需要做一些基础的配置,尽量让hbase能有一个不错的表现,其中内存规划工作占了很大的比例。

机器64G内存


注意

LRUBlockCache + MemStore < 80% * JVM_HEAP

hbase配置

-Xmx32g -Xms32g -Xmn1g -Xss256k -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC 
-XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection  -XX:+UseCMSInitiatingOccupancyOnly        
-XX:CMSInitiatingOccupancyFraction=75 -XX:-DisableExplicitGC

<property>
    <name>hbase.regionserver.global.memstore.upperLimit</name>
    <value>0.60</value>
</property>
<property>
    <name>hbase.regionserver.global.memstore.lowerLimit</name>
    <value>0.55</value>
</property>
<property>
    <name>hfile.block.cache.size</name>
    <value>0.19</value>
</property>
<property>
    <name>hbase.bucketcache.ioengine</name>
    <value>offheap</value>
</property>
<property>
    <name>hbase.bucketcache.size</name>
    <value>24576</value>
</property>
<property>
    <name>hbase.bucketcache.percentage.in.combinedcache</name>
    <value>0.90</value>
</property>

机器96G内存

我们线上是96G的机器,内存规划如下。

hbase配置

export HBASE_HEAPSIZE=32768
#export master_heapsize=65536
export regionserver_heapsize=50176
export HBASE_REGIONSERVER_OPTS="-Xmx49g -Xms49g -Xmn2g -Xss256k -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled  -XX:+UseCMSCompactAtFullCollection  -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=75 -XX:-DisableExplicitGC"
<property>
    <name>hbase.regionserver.global.memstore.upperLimit</name>
    <value>0.60</value>
</property>
<property>
    <name>hbase.regionserver.global.memstore.lowerLimit</name>
    <value>0.55</value>
</property>
<property>
    <name>hfile.block.cache.size</name>
    <value>0.19</value>
</property>
<property>
    <name>hbase.bucketcache.ioengine</name>
    <value>offheap</value>
</property>
<property>
    <name>hbase.bucketcache.size</name>
    <value>39936</value>
</property>
<!-- 用于缓存用户数据块的内存(堆外内存)占所有读缓存的比例,设为0.90 -->
<property>
    <name>hbase.bucketcache.percentage.in.combinedcache</name>
    <value>0.90</value>
</property>







作者:柯广的网络日志

微信公众号:Java大数据与数据仓库