hbase 由于zookeeper问题导致连接失败问题
问题现象:
使用hbase shell 连接报如下问题:
2019-10-09 10:37:18,855 ERROR [main] zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 4 attempts
2019-10-09 10:37:18,856 WARN [main] zookeeper.ZKUtil: hconnection-0x6ef784bf0x0, quorum=xxx:2181,xxx:2181,xxx:2181, baseZNode=/hbase Unable to set watcher on znode (/hbase/hbaseid)
hbase 日志里面报错日志如下:
2019-10-09 09:26:58,701 WARN [regionserver/xxx/192.168.1.8:16020-longCompactions-1569222224980-SendThread(xxx:2181)] zookeeper.ClientCnxn: Session 0x0 for server xxx/192.168.1.24:2181, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Connection reset by peer
解决过程:
由上诉问题现象,可以发现是由于zookeeper的问题,先尝试看一下zookeeper是否挂掉。
1、使用telnet host or ip 2181 连接测试
# telnet xxx 2181
Trying 192.168.1.23...
Connected to xxx.
Escape character is '^]'.
Connection closed by foreign host.
发现连接不过去,远程服务器或者远程程序关闭了该连接
2、连接到zookeeper的节点服务器查看socket连接数
:~$ netstat -anl|grep 2181|grep -i '192.168.1.7'|grep ESTABLISHED|wc -l
1
:~$ netstat -anl|grep 2181|grep -i '192.168.1.8'|grep ESTABLISHED|wc -l
60
上诉的192.168.1.8这台机器就算hbase报错的服务器,可以发现这台机器在当前的zookeeper节点保持的会话是60个,这远远没有达到系统的限制
3、修改hbase的zookeeper连接限制
<property> <name>hbase.zookeeper.property.maxClientCnxns</name> <value>300</value> #默认是30,修改完以后,重启regioserver,但是没什么用
property>
4、修改zookeeper下的zoo.cfg文件
#maxClientCnxns=60 这个值跟刚才查看的ESTABLISHED连接数量刚好一致 取消掉注释,修改为150,重启zookeeper
问题解决
原文地址:https://www.cnblogs.com/yjt1993/p/11640458.html
- 关于move tablespace的问题总结(r2笔记50天)
- 一些极度危险的linux命令(r2笔记49天)
- 挑战数据结构与算法面试题——80题全解析(一)
- 关于操作失误的数据修复(r2笔记48天)
- 挑战数据结构与算法面试题——80题全解析(三)
- 巧用rowid简化sql查询(r2笔记47天)
- 算法类面试题解析——美团2016校招:棋子翻转
- 算法类面试题解析——美团2016校招:最大差值
- 用Python进行机器学习小案例
- 启用ODM极速调优IO (r2笔记66天)
- 通过addm分析io问题(r2笔记64天)
- python爬虫+R数据可视化 实例
- 梯度下降优化算法综述
- 关于oracle后台启用的schedule job(r2笔记65天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浅析asp .net core 中间件
- 玩转jenkins - 在自己的服务器上安装jenkins
- CPU有个禁区,内核权限也无法进入!
- Java bytecodes
- 云原生分布式深度学习初探
- 【原创】经验分享:一个Content-Length引发的血案(almost....)
- SAP Spartacus里使用Observable访问Component数据
- SAP Spartacus的b2cLayoutConfig
- python判断工作日,节假日
- Shell高级用法之重定向绑定
- 使用Pyspark进行特征工程时的那些坑
- AutoML之自动化特征工程
- 使用Pandas_UDF快速改造Pandas代码
- pandas:根据行间差值进行数据合并
- DeepFM算法解析及Python实现