Thrift/Zookeeper 连接数过多导致新连接请求被拒

2015-03-10 15:11:28 +08:00
 monkeylyf

症状:
小型集群在部署后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发出请求也是各种报错。

请问各位英雄豪杰有没有类似的经历? 小弟跪求指点

16731 次点击
所在节点    Hadoop
9 条回复
signifox
2015-03-10 20:08:07 +08:00
我一般连接设置成8000.
monkeylyf
2015-03-11 00:58:22 +08:00
@signifox 感谢回复
我现在设成了200 重启了zookeeper 暂时还没有看到问题
我的担心是 如果这些链接是某些应用创建不当造成的僵尸链接 那么设成2000也总有一天会max out 我很好奇真正的root cause
signifox
2015-03-11 08:10:56 +08:00
@monkeylyf 可以计算zk所需连接数,region master server client都会占用zk链接,至于僵尸链接不用担心,zk都有session的会超时自己销毁。
monkeylyf
2015-03-11 10:48:06 +08:00
@signifox 现在就是感觉僵尸链接没有被销毁 zk的session timeout设置的是60000ms 总感觉里面有什么东西在搞鬼
xurubin
2015-03-11 18:51:22 +08:00
寂寞
xurubin
2015-03-11 18:56:42 +08:00
Google "HBase client leaking connections"有没有看上去符合的。[/kb]
XadillaX
2015-03-11 20:38:57 +08:00
我只是来吐槽 Lucy 的。
monkeylyf
2015-03-12 01:12:40 +08:00
@XadillaX mew mew lied!
monkeylyf
2015-03-12 01:12:58 +08:00
@xurubin 同寂寞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/175829

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX