等待下一个秋

  • Spark
  • Flink
  • Hive
  • 数据仓库
  • ClickHouse
  • 收徒弟
  • Java
    • Spring
    • Mybatis
    • SpringBoot
    • 面试题
  • Python
    • Python基础
    • 爬虫
    • Numpy
    • matplotlib
    • Flask
  • 技术杂谈
    • Linux知识
    • Docker
    • Git教程
    • Redis教程
    • mysql
    • 前端
    • R语言
    • 机器学习
  • 关于我
  • 其它
    • 副业挣钱
    • 资料下载
    • 资料文档
专注于Hadoop/Spark/Flink/Hive/数据仓库等
关注公众号:大数据技术派,获取更多学习资料。
  1. 首页
  2. 技术杂谈
  3. 大数据
  4. 正文

hbase2.0.3 内存规划

2020年9月3日 5544点热度 0人点赞 2条评论

读多写少

由于业务场景的需要,我们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/

标签: Hbase 大数据
最后更新:2021年5月28日

等待下一个秋

待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 风水

    写的挺棒,文采不错

    2020年9月30日
    回复
    • keguang

      @风水 哈哈

      2020年10月1日
      回复
  • 取消回复

    等待下一个秋

    待我代码写成,便娶你为妻!专注于Hadoop/Spark/Flink/Hive/数据仓库等,关注公众号:大数据技术派,获取更多学习资料。

    搜一搜
    微信
    最新 热点 随机
    最新 热点 随机
    深入理解ClickHouse跳数索引 ClickHouse主键索引最佳实践 Java和Python操作Clickhouse ChatGPT 注册教程 ChatGPT可以做什么 ClickHouse 自定义分区键
    Hive中的集合数据类型 Hive 分析函数lead、lag实例应用 Mybatis使用IN语句查询 分享一份大数据教程资源(内含文档和视频) Matplotlib 标注 利用python发送email邮件
    标签聚合
    R语言 mysql 算法 Flink 挣钱 Java Hive 数据仓库 Python 大数据 Redis 书籍
    文章归档
    • 2023年4月
    • 2023年3月
    • 2023年2月
    • 2022年12月
    • 2022年11月
    • 2022年9月
    • 2022年7月
    • 2022年6月
    • 2022年5月
    • 2022年4月
    • 2022年3月
    • 2022年2月
    • 2022年1月
    • 2021年12月
    • 2021年11月
    • 2021年10月
    • 2021年9月
    • 2021年8月
    • 2021年6月
    • 2021年5月
    • 2021年4月
    • 2021年3月
    • 2021年2月
    • 2021年1月
    • 2020年12月
    • 2020年11月
    • 2020年10月
    • 2020年9月
    • 2020年8月
    • 2020年7月
    • 2020年5月
    • 2020年4月
    • 2020年1月
    • 2019年9月
    • 2019年8月
    • 2019年7月
    • 2019年6月
    • 2019年5月
    • 2019年4月
    • 2019年3月
    • 2019年1月
    • 2018年12月
    • 2017年5月

    ©2022 ikeguang.com. 保留所有权利。

    鄂ICP备2020019097号-1

    鄂公网安备 42032202000160号