症状:
小型集群在部署后12到48小时就会有应用报错, 说和HBse在创建链接时超时. 这时候去查看Zookeeper的日志是发现已经有大量链接创建并且达到了设置的数值(60).
环境:
Cloudera. 大部分应用使用 Python Happybase 通过Thrift service来和Zookeeper进行通信, 由于集群的规模非常小, 所以只有一个Thrift gateway.另外有一些Java应用是mapreduce来对HBase进行put, 用的是native Hadoop HBase API.
临时解决方案:
1. 把Zookeeper的max # of connections设置成200
2. 每12小时重启Zookeeper一次
这2个办法现在可以基本把症状消除 但是在我看来并不解决问题因为根本没找到问题在哪. 而且Zookeeper的重启会导致有60秒的真空期 如果这个时候应用给zookeeper发出请求也是各种报错。
请问各位英雄豪杰有没有类似的经历? 小弟跪求指点
1
signifox 2015-03-10 20:08:07 +08:00
我一般连接设置成8000.
|
2
monkeylyf OP @signifox 感谢回复
我现在设成了200 重启了zookeeper 暂时还没有看到问题 我的担心是 如果这些链接是某些应用创建不当造成的僵尸链接 那么设成2000也总有一天会max out 我很好奇真正的root cause |
3
signifox 2015-03-11 08:10:56 +08:00 via iPhone
@monkeylyf 可以计算zk所需连接数,region master server client都会占用zk链接,至于僵尸链接不用担心,zk都有session的会超时自己销毁。
|
4
monkeylyf OP @signifox 现在就是感觉僵尸链接没有被销毁 zk的session timeout设置的是60000ms 总感觉里面有什么东西在搞鬼
|
5
xurubin 2015-03-11 18:51:22 +08:00
寂寞
|
6
xurubin 2015-03-11 18:56:42 +08:00 1
Google "HBase client leaking connections"有没有看上去符合的。[/kb]
|
7
XadillaX 2015-03-11 20:38:57 +08:00
我只是来吐槽 Lucy 的。
|