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
最新文章
- js正则获取url所带参数值
- 【Alpha版本】冲刺阶段——Day 6
- 什么是Ajax? (转载于疯狂客的BLOG)
- Keil 中的预处理命令const
- Struts开发问题集锦
- MySQL用户和系统变量
- LeetCode 39. Combination Sum (组合的和)
- 用js来实现那些数据结构(栈01)
- R语言学习——向量
- FFT笔记
- Python · 进度条
- js scroll函数
- 转:ActiveMQ的作用总结(应用场景及优势)
- Get方法和post方法有何不同?
- cordova-ios 升级到4.4.0 无法真机跑iOS8 报错: dyld`dyld_fatal_error: ->; 0x120085088 <;+0>;: brk #0x3
- jsoncpp 0.5 ARM移植
- meterpreter命令
- 「日常训练」Jongmah(Codeforces-1110D)
- Delphi.format填充0
- Eclipse/MyEclipse 选择Android NDK目录时提示“Not a valid NDK directory”