hbase2.0.3 内存规划

读多写少

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

机器64G内存

序号 步骤 原理 计算公式 计算值 修正值
A 规划RS总内存 在系统内存允许且不影响其他服务的情况下,越多越好。64G内存,预留8G即可 64G - 8G 56G 56G
B 规划读缓存 CombinedBlockCache 整个RS内存分为三部分:读缓存、写缓存、其他。基本按照5 : 4 : 1的分配原则。读缓存设置为整个RS内存的50% A(56G) * 50% 28G 28G
B1 规划读缓存LRU部分 LRU部分主要缓存数据块元数据,数据量相对较小。设置为整个读缓存的10% B(28G)*10% 2.8G 3G
B2 规划读缓存BucketCache部分 BucketCache部分主要缓存用户数据块,数据量相对较大。设置为整个读缓存的90% B(28G)*90% 25.2G 24G
C 规划写缓存MemStore 整个RS内存分为三部分:读缓存、写缓存、其他。基本按照5:4:1的分配原则。写缓存设置为整个RS内存的40% A(56G) * 40% 22.4G 22G
D 设置JVM_HEAP RS总内存大小 减去 堆外内存大小 A – B2 30.8G 32G

注意

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


    hbase.regionserver.global.memstore.upperLimit
    0.60


    hbase.regionserver.global.memstore.lowerLimit
    0.55


    hfile.block.cache.size
    0.19


    hbase.bucketcache.ioengine
    offheap


    hbase.bucketcache.size
    24576


    hbase.bucketcache.percentage.in.combinedcache
    0.90

参考文档:

https://blog.csdn.net/javastart/article/details/52612447

https://blog.csdn.net/cm_chenmin/article/details/52994980

https://sq.163yun.com/blog/article/170965000956645376

机器96G内存

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

序号 步骤 原理 计算公式 计算值 修正值
A 规划RS总内存 在系统内存允许且不影响其他服务的情况下,越多越好。96G内存,预留8G即可 96G - 8G 88G 88G
B 规划读缓存 CombinedBlockCache 整个RS内存分为三部分:读缓存、写缓存、其他。基本按照5 : 4 : 1的分配原则。读缓存设置为整个RS内存的50% A(88G) * 50% 44G 44G
B1 规划读缓存LRU部分 LRU部分主要缓存数据块元数据,数据量相对较小。设置为整个读缓存的10% B(44G)*10% 4.4G 4G
B2 规划读缓存BucketCache部分 BucketCache部分主要缓存用户数据块,数据量相对较大。设置为整个读缓存的90% B(44G)*90% 39.6G 39G
C 规划写缓存MemStore 整个RS内存分为三部分:读缓存、写缓存、其他。基本按照5:4:1的分配原则。写缓存设置为整个RS内存的40% A(88G) * 40% 35.2G 35G
D 设置JVM_HEAP RS总内存大小 减去 堆外内存大小 A – B2 49G 49G

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"

    hbase.regionserver.global.memstore.upperLimit
    0.60


    hbase.regionserver.global.memstore.lowerLimit
    0.55


    hfile.block.cache.size
    0.19


    hbase.bucketcache.ioengine
    offheap


    hbase.bucketcache.size
    39936



    hbase.bucketcache.percentage.in.combinedcache
    0.90

参考博客

https://sq.163yun.com/blog/article/170965000956645376

http://hbasefly.com/2016/06/18/hbase-practise-ram/

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注