hbase问题及优化
问题现象:效率低,造成前端文件积压
造成SDFS向hbase集群写文件效率低,发生积压的主要原因为以下:
1. Hbase regionserver服务JVM 堆内存新生代和老生代的使用率较高,GC次数频繁(服务启动至今发生过3W多次)及GC时间较长。
2. 目前每个节点平均700多个region,当前regionserver堆内存配置较小(老生代12Gb,新生代1Gb),在频繁写的场景下,导致发生了大量的memstore flush操作(日志中大量 global memstore flush),进而触发了大量的storeFile compaction操作(Compaction Queue Size 指标很高)。
处理方案(wangzy_ac_rdc_shanxi):
详见附件
优化hbase集群以下参数:
1. Memstore flush参数优化:
hbase.regionserver.global.memstore.upperLimit
RegionServer进程block进行flush触发条件:该节点上所有region的memstore之和达到upperLimit*heapsize,对于频繁写的应用,建议调大该值
当前配置:0.4
推荐配置:0.45
hbase.regionserver.global.memstore.lowerLimit
RegionServer进程触发flush的一个条件:该节点上所有region的memstore之和达到lowerLimit*heapsize,对于频繁写的应用,建议调大该值
当前配置:0.35
推荐配置:0.4
2. Compaction参数优化:
hbase.hstore.blockingStoreFiles(一个Store下的StoreFile文件数据大于该值时,则在flush memstore前先进行split或Compaction同时阻塞flush操作,可调高该值避免flush延迟)
当前配置:12
推荐配置:30
hbase.hstore.compaction.min.size(一个store下小于该大小的文件会加入到合并的队列)
配置与memstore flush的大小一致,减少发生compaction操作
当前配置:536870912
推荐配置:268435456
3. Hbase RegionServer堆内存参数优化
当前配置:
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -server -Xmx12288m -Xms12288m -Xmn1024m -XX:SurvivorRatio=1 -XX:+UseParNewGC
推荐配置:
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -server -Xmx32768m -Xms32768m -Xmn2048m -XX:SurvivorRatio=1 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:-DisableExplicitGC"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)