生产服务遇到过一个故障,大体来说就是hbase集群故障,在没有设置hbase客户端超时的情况下,导致大量线程阻塞,从而影响了tomcat对其他服务请求的正常响应(504网关超时,超时率30%),需要规避这个问题需要两个方面,1.设定客户端访问超时时间;2.服务资源隔离。本篇关注第一点。

hbase.rpc.timeout:一次RPC请求的超时时间,如果某次RPC时间超过该值,客户端就会主动关闭socket。默认大小为60000ms,即1mins。

hbase.client.operation.timeout:

1.该参数表示HBase客户端发起一次数据操作直至得到响应之间总的超时时间,数据操作类型包括get,append,increment,delete,put等。

2.hbase.rpc.timeout表示一次RPC的超时时间。

3.hbase.client.operation.timeout则表示一次操作的超时时间,有可能包好多个RPC请求。

4.hbase.client.operation.timeout参数规定的超时基本涉及到了HBase所有的数据操作,唯独没有scan操作。

hbase.client.scanner.timeout.period: scan的超时时间

scan操作:

1)一次scan操作涉及多个RPC请求,一次请求大量数据的scan操作可能会导致多个严重后果。

2)服务端可能因为大量io操作导致io利用率很高,从而影响其他正常业务请求;大量数据传输会导致网络带宽等系统资源被大量占用;客户端也可能因为内存无法缓存这些数据导致OOM。

3)因此,hbase会将一次大的scan操作根据设置条件拆分为多个RPC请求,每次只返回规定数量的结果。scan代码示例:

Result result = resultScanner.next();
while (result != null) {Map<String, Object> response = Maps.newHashMap();for (Cell cell : result.rawCells()) {String prefixKey = new String(CellUtil.cloneQualifier(cell));String key = StringUtils.replace(prefixKey, param, "", 1);String value = new String(CellUtil.cloneValue(cell));response.put(key, value);}response.put("rowkey", new String(result.getRow(), Consts.UTF_8));resultList.add(response);result = resultScanner.next();
}

Author:忆之独秀

Email:leaguenew@qq.com

转载注明出处:https://blog.csdn.net/lavorange/article/details/103832356

【HBase学习之四】HBase Client超时机制优化相关推荐

  1. HBase学习(四) HBase API操作

    目录 准备工作 创建maven项目 添加依赖 API操作 创建HBase连接 创建HBase表 删除表 向表中插入数据 查看数据 过滤器操作 全部代码 注意事项 准备工作 创建maven项目 添加依赖 ...

  2. 【HBase学习笔记-尚硅谷-Java API shell命令 谷粒微博案例】

    HBase学习笔记 HBase 一.HBase简介 1.HBase介绍 2.HBase的逻辑结构和物理结构 3.数据模型 4.基本架构 二.快速入门 1.配置HBase 2.命令 三.API 1.获取 ...

  3. HBase学习01--Hbase的安装

    HBase学习01–Hbase的安装 一.单机模式: 1.1 解压软件包 tar -zxvf hbase-1.1.3-bin.tar.gz 1.2 配置JAVA_HOME环境变量 cd /usr/lo ...

  4. HBase之超时机制

    客户端超时设置对整个系统的稳定性以及敏感性至关重要,一旦没有超时设置或超时时间设置过长,服务器端的长时间卡顿必然会引起客户端阻塞等待,进而影响上层应用.好在HBase提供了多个客户端参数设置超时,主要 ...

  5. hbase 修改表名_HBase学习——2.HBase原理

    1.系统架构 1.1 图解 从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemSto ...

  6. Hbase学习笔记(概念和搭建)

    Hbase学习笔记 1.hbase的基本介绍 简介 hbase是bigtable的开源java版本,是建立在hdfs之上,提供给高可靠性,高性能,列存储,可伸缩,实时读写的nosql的数据库系统,它介 ...

  7. HBase学习-HBase原理

    1.系统架构 1.1 图解 从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemSto ...

  8. HBASE学习使用经验

    问题导读: 1. NOSQL是如何产生的以及Hbase 在NOSQL中的地位如何? 2. Hbase框架是如何架构出来的 ? 3. Hbase 是如何检索一条数据以及检索时间复杂度是多少? 4. 如何 ...

  9. HBase学习提纲:助你一臂之力

    HBase 简介: HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.可在廉价PC Server上搭建起大规模结构化存储集群. HBase利用Hadoop HDFS作为其文件存储系统, ...

最新文章

  1. 极视教育的课程怎么样_蒲公英教育加盟怎么样?
  2. Kafka源码剖析 —— 网络I/O篇 —— 浅析KafkaSelector
  3. python程序在命令行执行提示ModuleNotFoundError: No module named ‘XXX‘ 解决方法
  4. eclipse的怪问题。background indexer crash recovery .java.lang.OutOfMemoryError: Java heap space
  5. android 带弧形背景,[Android日常]绘制弧形渐变背景
  6. 2019南昌网络赛G. tsy‘s number(反演 + 积性函数O(n)预处理)
  7. ReactNative之Flex布局总结
  8. [codevs1378]选课
  9. C++_选择结构_单行if语句_多行if语句_多条件if语句_嵌套if语句_三目运算符---C++语言工作笔记016
  10. 将本地SQL Server数据库迁移到Azure SQL数据库
  11. 学c语言前要了解什么软件,学习c语言需要什么软件?
  12. (附源码)spring boot记账微信小程序 毕业设计 180815
  13. HTML5 教程(四) - 内联元素
  14. 安装python之后电脑变卡_【Python】如何让电脑变卡?
  15. 关于C51中“大小端存储”问题的详解
  16. 华为eNSP和思科PNET如何正确调用抓包软件
  17. EnvironmentNotWritableError:The current user does not have write permissions to the target...
  18. H指数(h-index)的Python实现
  19. 测试用例管理工具~JIRA
  20. 我哋嘅水墨动剐曾让宫祈骏、糕填勋睇木殳咗2019年6月25日 星期二

热门文章

  1. brisk matlab,关于计算机视觉:MATLAB中SURF和BRISK点的比例域
  2. 解决烦人的sudo报错问题
  3. 后代子元素选择器交集并集选择器 4大复合选择器的区别
  4. MFC Windows 程序设计[310]之混搭个性按钮组群(附源码)
  5. Linux学习之安装OpenCV3.4.1
  6. mpvue入坑之修改数据页面不刷新
  7. CentOS7搭建Qt5.14.2开发环境遇到的坑和解决方法
  8. 2020年网络安全漏洞态势报告-整体漏洞趋势
  9. 「危机情境」!机器人的时代真的来了吗?
  10. vivo发布OriginOS,带来全新的设计和交互体验