背景: 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 …
1. 将ZeroMQ降级
通过Google搜索, 发现有很多人问这个问题,nathanmarz 的建议是将ZeroMQ的版本降级为2.1.7; 原来系统使用的3.0.2,降级为2.1.7后发现仍然存在这个问题, 基本可以排除是由于ZeroMQ导致的.
1. 升级Storm
2. Storm升级至0.7.2后, 仍然存在问题. 看来是安装部署的问题
3. 真正的原因
4. , 查看日志, 重新安装. 总算发现了问题出在DNS服务上, 5台计算节点使用内部的DNS服务, 但是这台DNS服务器不够稳定, 改成静态域名解析后问题不再出现。
这是做dayoou.com这个项目的时候遇到的问题,贡献出来供众看官批评啦。