背景: 5台机器, 部署storm计算节点, 2台机器drpc节点. 环境如下:
Storm: 0.7.1
Linux: CentOS 5.5
Java: jdk 1.6.37
问题:storm 集群总是在运行一段时间后某些节点停止工作, 工作进程退出.
解决过程:
1) 查看storm日志
发现storm抛出如下异常:
worker [ERROR] Error on initialization of server mk-workerjava.lang.RuntimeException: org.zeromq.ZMQException: Invalid argument(0x16)
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq …
2) 将ZeroMQ降级
通过Google搜索, 发现有很多人问这个问题,nathanmarz 的建议是将ZeroMQ的版本降级为2.1.7; 原来系统使用的3.0.2,降级为2.1.7后发现仍然存在这个问题, 基本可以排除是由于ZeroMQ导致的.
3) 升级Storm
将Storm升级至0.7.2后, 仍然存在问题. 看来是安装部署的问题
4) 真正的原因
最后经过整整三天的不停启动, 查看日志, 重新安装. 总算发现了问题出在DNS服务上, 5台计算节点使用内部的DNS服务, 但是这台DNS服务器不够稳定, 改成静态域名解析后问题不再出现
以上是我在开发大有网(http://www.dayoou.com)遇到的问题,和大家分享。