zoukankan      html  css  js  c++  java
  • HBase调优案例(三)——Spark访问HBase慢

    负载信息:RegionServer:3个

                      Region:5400多个

    现象:在使用Spark对HBase进行scan操作时发现有些task执行比较慢

    原因分析:查看Spark应用的executor日志,发现查询慢的都是027节点请求的。

         获取此节点的regionServer日志,发现scan的时候有responseTooSlow的打印。

            查询日志发现这段时间在regionServer上出现很多次GC pause的打印,说明当前内存不足。

    综上,当前regionServer内存的配置不足以应付高并发状态下的RPC请求。由于实际节点上的业务量/数据量/请求个数存在略微差异,使027节点处理请求时GC出现了延迟。当Spark多并发task执行的时候,GC的pause不能及时地处理查询请求,从而影响整个查询的时间。

    解决:

      调整HMaster的内存及Handler相关配置

      1.调整HMaster和RegionServer的GC_OPTS(垃圾回收参数)

      RegionServer调整为:

      Xms 6G——>16G

      -Xmx 6G——>16G

      NewSize 64M——>512M

      Max NewSize 128M——>512M

      Max DirectMemorySize 128M——>1024M

      HMaster调整为:

      Xms 1G——2G

      -Xmx 1G——>2G

      NewSize 64M——>256M

      Max NewSize 128M——>512M

      Max DirectMemorySize 128M——>512M

      2.调整RPC Handler(regionServer上处理RPC请求的线程实例数)

      hbase.regionserver.handler.count 100——>300

      hbase.regionserver.metahandler.count 10——>100

  • 相关阅读:
    Python_day1
    12/04
    Linux基础笔记
    八:动态规划-未名湖边的烦恼
    七:动态规划-数字三角形
    六:大数运算-减法运算
    五:大数运算-加法运算
    四:大数运算-乘法运算
    三:排序-幸运数字
    二:排序-果园
  • 原文地址:https://www.cnblogs.com/lingluo2017/p/8727942.html
Copyright © 2011-2022 走看看