等待下一个秋

  • 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日 5922点热度 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日
      回复
  • 取消回复

    搜一搜
    微信
    最新 热点 随机
    最新 热点 随机
    深入理解ClickHouse跳数索引(二级索引) ClickHouse主键索引(一级稀疏索引)最佳实践 Java和Python操作Clickhouse ChatGPT 注册教程 ChatGPT可以做什么 ClickHouse 自定义分区键
    Redis 性能测试 Hive实战—时间滑动窗口计算 Matplotlib 指定颜色 Python3爬虫入门之开篇 Flink SQL管理平台flink-streaming-platform-web安装搭建 Redis 安装
    标签聚合
    Redis 书籍 Hive Java Python 挣钱 mysql 大数据 数据仓库 Flink R语言 算法
    文章归档
    • 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号