读多写少
由于业务场景的需要,我们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
文章评论
写的挺棒,文采不错
@风水 哈哈