zoukankan      html  css  js  c++  java
  • HBase笔记5(诊断)

    阻塞急救:

      RegionServer内存设置太小: 

        解决方案: 设置Region Server的内存要在conf/hbase-env.sh中添加export HBASE_REGIONSERVER_OPTS=" $HBASE_REGIONSERVER_OPTS  -Xms8g -Xmx8g"

      HFile达到允许的最大数量:

        解决方案: 调大hbase.hstore.blockingStoreFiles

      memstore大小达到阈值:

        解决方案:略微调大hbase.hregion.memstore.flush.size*hbase.hregion.memstore.block

      RegionServer上的Memstore总大小达到阈值:

        解决方案:适当调大hbase.regionserver.global.memstore.size 调小hfile.block.cache.size

          memstore 和 blockcache所占的内存总和《= 系统总内存的80%

    朱丽叶暂停:

      集群的region server任意一个出现宕机

      发生原因:

        1)Zookeeper长时间未接收到Region server响应,标记该节点宕机

        2)HBase 是基于JVM,大概率遇上Full GC,GC时JVM会停止响应请求,长时间暂停造成zookeeper误认region server宕机

        3)region server恢复后发现自己被标记为宕机,自己只能自杀了

      解决方案:

        1)查看内存是否够用

          修改hbase-env.sh 中的HBASE_REGIONSERVER_OPTS选项,增加或调大-Xmx 和 -Xms值

          

         2)调整zookeeper超时时间

          在hbase-site.xml增加以下配置项zookeeper.session.timeout

            <property>

              <name>zookeeper.session.timeout</name>

              <vaule>18000</value>    设置成180秒

            </property>

            确定最终超时时间: 1)先查看conf/zoo.cfg中tickTime=2000

                      2)计算最小minSessionTimeout=2 * tickTime =4 秒

                      3)计算最大maxSessionTimeout=20 * tickTime =40 秒

                      4) 若zookeeper.session.timeout < minSessionTimeout, 那SessionTimeout 采用 minSessionTimeout

                       若zookeeper.session.timeout > maxSessionTimeout ,那SessionTimeout采用 maxSessionTimeout

                    若果Session真的要调到180秒,需要调大tickTime

         3)优化GC回收策略

            JVM堆内存 < 4GB,那么使用参数 -XX:+UseParNewGC     -XX:+UseConcMarkSweepGC

            JVM堆内存介于4GB~32GB,使用参数 -XX:+UseParNewGC    -XX:+UseConcMarkSweepGC 或-XX:+UseG1GC

            JVM堆内存 > 32GB,使用-XX:+UseG1GC

            4)配置MSLAB

            hbase.hregion.memstore.mslab.enabled=true

            hbase.hregion.memstore.chunkpool.maxsize=非0值,取值范围0-1

            hbase.hregion.memstore.chunkpool.initialsize=非0值,取值范围0-1,代表预分配chunk占用chunk pool的比例

    读性能调优

      性能调优方面分为2部分: 调整API用法,调整系统配置

          使用过滤器

          增加blockcache (若果缓存命中率较高,可以提高blockcache大小)

            

          调整HFile合并策略

  • 相关阅读:
    告别ThinkPHP6的异常页面, 让我们来拥抱whoops吧
    ThinkPHP6 上传图片代码demo
    【ThinkPHP6:从TP3升级到放弃】1. 前言及准备工作
    PHP数字金额转换大写金额
    提高PHP开发效率, PhpStorm必装的几款插件
    5分钟弄懂Docker!
    GitHub 上排名前 100 的 IOS 开源库简介
    GitHub 上排名前 100 的 Android 开源库简介
    android线程消息传递机制——Looper,Handler,Message
    Android Activity:四种启动模式,Intent Flags和任务栈
  • 原文地址:https://www.cnblogs.com/zy1234567/p/10331956.html
Copyright © 2011-2022 走看看