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" 

 

posted @ 2022-02-26 16:33  Harda  阅读(226)  评论(0编辑  收藏  举报