【storm集群】storm 工作目录不停生成hs_err_pidXXX.log

a 夏天 提交于 2019-12-05 00:56:36

昨天搭建好集群,提交了topology,但是始终没有结果。今天debug一天终于解决了,记录下来。

问题描述:##

  • ui显示topology在运行,但是emit, uptime等数据始终为0。
  • jps没有发现worker进程,看 supervisor.log 和 worker-*.log,发现supervisor一直在启动worker进程, 但是worker马上就死了
  • 工作目录不停产生hs_err_pidXXX.log日志。

解决过程:

  1. 开始怀疑代码有问题,在本地模式下调试,确实发现问题,但是解决完问题成功在本地运行后,在集群上还是一样

  2. 看到很多hs_err_pidXXX.log,在网上查了下是jvm崩溃了,因为对java了解不深,以为是java版本问题(集群机器上有1.6 1.7 两个版本)。于是将集群的机器都改成 1.6。结果还是有问题

  3. 反复看各种storm日志,google, 改代码,重新跑topology, 重启集群,以root身份启动集群....... 结果都失败了

  4. 回头找了下介绍hs_err_pidXXX.log,定位了问题(不能确定) 在此输入图片描述 从文件头部信息看来,是 libzmq这个库的问题。运维安装的是最新稳定版的zeromq 和 jzmq。 在两者兼容性问题上纠结了半天,网上查了很多博客资料,依旧搞不出个所以然。

  5. 无意中看到storm出 0.9 了,想着是不是zeromq和jzmq太新了(刚release几天), 而用的storm-0.8.1是12年release的,不兼容。抱着换0.9的想法,去找了下0.9的release log 。 结果!卧槽 在此输入图片描述 尼玛,好大一个坑啊!!!

  6. 重新编译了 zeromq-2.1.7, 成功运行topology

注: 其实storm/bin里面有个脚本install_zmq.sh, 使用这个脚本安装就可以了。jzmq也使用脚本里的冻结的源码,使用最新的源码也会有出现上面说的问题!

总结:

storm 文档好少,实例好少,问题及解决好少,得靠自己多摸索啊

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!