HBase调优案例——Spark访问HBase慢

Posted lingluo2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于HBase调优案例——Spark访问HBase慢的主要内容,如果未能解决你的问题,请参考以下文章

hbase性能调优_表设计案例

Spark-on-Hbase:通过Spark的DataFrame访问Hbase表

0540-5.15.0-Spark2使用HBase-Spark访问HBase

Spark: Spark-sql 读hbase

Spark访问与HBase关联的Hive表

Spark: Spark-sql 读hbase