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调优案例(二)——高并发下bulkload出现超时
原因分析: 导入数据——>HBase,在客户端会发生非常多的rpc请求到regionServer,从而加大regionServer上的压力,如果regionServer比较忙碌(handle被占 ...
- HBase调优案例(一)——建表长时间等待最后失败
现象: 1.在HBase Shell里执行建表操作会等很久,最终失败: 2.通过代码侧进行建表同样不能成功. 原因排查: 1.查询HMaster日志,发现有接收到建表(create)的RPC请求: ...
- hbase性能调优案例
hbase性能调优案例 1.人员-角色 人员有多个角色 角色优先级 角色有多个人员 人员 删除添加角色 角色 可以添加删除人员 人员 角色 删除添加 设计思路 person表 ...
- hbase调优
@ 目录 一.phoenix调优 1.建立索引超时,查询超时 2.预分区 hbase shell预分区 phoenix预分区 3.在创建表的时候指定salting. 4.二级索引 建立行键与列值的映射 ...
- 必读,sql加索引调优案例和explain extended说明
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 昨天分享了Mysql中的 explain 命令,使用 explain 来分析 select 语句的运行效果,如 :expl ...
- jvm系列(六):Java服务GC参数调优案例
本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...
- Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作
Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...
- JVM 内存分配、调优案例
内存分配 对象优先在Eden区分配 大多数情况下,对象在新生代Eden区中分配.当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC. HotSpot虚拟机提供了-XX:+PrintG ...
- jvm调优思路及调优案例
jvm调优思路及调优案例 我们说jvm调优,其实就是不断测试调整jvm的运行参数,尽可能让对象都在新生代(Eden)里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时 ...
随机推荐
- Callable+ThreadPoolExecutor实现多线程并发并获得返回值(转)
出处:https://blog.csdn.net/kity9420/article/details/80740466 前言 经常会遇到一些性能问题,比如调用某个接口,可能要循环调用100次,并且需要拿 ...
- vim 文本编辑器
vim 文件名:命令模式 i 编辑模式 :输入模式 vim +n 文件名:打开文件,将光标置于第N行首部 命令模式进入输入模式进行编辑: i 当前光标位置插入文本 I 在当前行行首插入文本 o 在光标 ...
- hadoop面试复习笔记(1)
0.Mappereduce采用的是Master/Slaves模型 1.Hadoop是一个开源软件框架,支持支持大数据集的存储和处理.Apache Hadoop是存储和处理大数据的解决方案你是因为: ( ...
- initdb - 创建一个新的 PostgreSQL数据库集群
SYNOPSIS initdb [ option...] --pgdata | -D directory DESCRIPTION 描述 initdb 创建一个新的 PostgreSQL 数据库集群. ...
- springcloud 高可用的服务注册中心
https://blog.csdn.net/forezp/article/details/81041101 上面是方老师的博客,看liuyan也有好多同学不是很清楚,这里自己也记录一下具体的做法. 1 ...
- Prism MVVM使用WPF的DataGrid控件
此项目源码下载地址:https://github.com/lizhiqiang0204/PrismDataGird01 运行效果如下 前端代码如下 <Window x:Class="V ...
- SQL优化之表连接方式
1.嵌套循环(DESTED LOOPS) Note:嵌套循环被驱动表必须走索引,而且索引只能走INDEX UNIQUE SCAN或者INDEX RANGE SCAN SQL> select /* ...
- Bootstrap 中文文档教程
Bootstrap 中文文档教程 Bootstrap 中文文档教程 全局样式和grid布局—Bootstrap中文使用指南 全局样式1.要求html5文档类型 Bootstrap使用的css属性和ht ...
- c语言数组那些骚事儿
找出最大和第二大值#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { , , ...
- HDU-3081-Marriage Match 2(最大流, 二分答案, 并查集)
链接: https://vjudge.net/problem/HDU-3081 题意: Presumably, you all have known the question of stable ma ...