风暴工人没有出发

时间:2014-02-09 12:42:26

标签: java ubuntu-12.04 zeromq apache-storm jzmq

我的Nimbus主机和主管正常运行。当我向Nimbus主机提交wordcount拓扑时,它成功上传。上传拓扑主管后发出错误

kill: No such process

当我检查worker-6001.log6002.log时,我发现了以下错误:

2014-02-09 17:20:05 b.s.m.TransportFactory [INFO] Storm peer transport     plugin:backtype.storm.messaging.zmq
2014-02-09 17:20:05 b.s.d.worker [ERROR] Error on initialization of server mk-worker
java.lang.UnsatisfiedLinkError: no jzmq in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886) ~[na:1.7.0_51]
at java.lang.Runtime.loadLibrary0(Runtime.java:849) ~[na:1.7.0_51]
at java.lang.System.loadLibrary(System.java:1088) ~[na:1.7.0_51]
at org.zeromq.ZMQ.<clinit>(ZMQ.java:34) ~[jzmq-2.1.0.jar:na]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_51]
at java.lang.Class.forName(Class.java:190) ~[na:1.7.0_51]
at backtype.storm.messaging.zmq$loading__4784__auto__.invoke(zmq.clj:1) ~[storm-core-0.9.0.1.jar:na]
at backtype.storm.messaging.zmq__init.load(Unknown Source) ~[storm-core-0.9.0.1.jar:na]
at backtype.storm.messaging.zmq__init.<clinit>(Unknown Source) ~[storm-core-0.9.0.1.jar:na]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_51]
at java.lang.Class.forName(Class.java:270) ~[na:1.7.0_51]
at clojure.lang.RT.loadClassForName(RT.java:2056) ~[clojure-1.4.0.jar:na]
at clojure.lang.RT.load(RT.java:419) ~[clojure-1.4.0.jar:na]
at clojure.lang.RT.load(RT.java:400) ~[clojure-1.4.0.jar:na]
at clojure.core$load$fn__4890.invoke(core.clj:5415) ~[clojure-1.4.0.jar:na]
at clojure.core$load.doInvoke(core.clj:5414) ~[clojure-1.4.0.jar:na]
at clojure.lang.RestFn.invoke(RestFn.java:408) [clojure-1.4.0.jar:na]
at clojure.lang.Var.invoke(Var.java:415) ~[clojure-1.4.0.jar:na]
at backtype.storm.messaging.zmq.<clinit>(Unknown Source) ~[storm-core-0.9.0.1.jar:na]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_51]
at java.lang.Class.forName(Class.java:190) ~[na:1.7.0_51]
at backtype.storm.messaging.TransportFactory.makeContext(TransportFactory.java:21) ~[storm-core-0.9.0.1.jar:na]
at backtype.storm.daemon.worker$worker_data$fn__5732.invoke(worker.clj:170) ~[storm-core-0.9.0.1.jar:na]
at backtype.storm.util$assoc_apply_self.invoke(util.clj:761) ~[storm-core-0.9.0.1.jar:na]
at backtype.storm.daemon.worker$worker_data.invoke(worker.clj:166) ~[storm-core-0.9.0.1.jar:na]
at backtype.storm.daemon.worker$fn__5882$exec_fn__1229__auto____5883.invoke(worker.clj:338) ~[storm-core-0.9.0.1.jar:na]
at clojure.lang.AFn.applyToHelper(AFn.java:185) [clojure-1.4.0.jar:na]
at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.4.0.jar:na]
at clojure.core$apply.invoke(core.clj:601) ~[clojure-1.4.0.jar:na]
at backtype.storm.daemon.worker$fn__5882$mk_worker__5938.doInvoke(worker.clj:329)     [storm-core-0.9.0.1.jar:na]
at clojure.lang.RestFn.invoke(RestFn.java:512) [clojure-1.4.0.jar:na]
at backtype.storm.daemon.worker$_main.invoke(worker.clj:439) [storm-core-0.9.0.1.jar:na]
at clojure.lang.AFn.applyToHelper(AFn.java:172) [clojure-1.4.0.jar:na]
at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.4.0.jar:na]
at backtype.storm.daemon.worker.main(Unknown Source) [storm-core-0.9.0.1.jar:na]
2014-02-09 17:20:05 b.s.util [INFO] Halting process: ("Error on initialization")

我的配置是

storm.yaml

storm.zookeeper.servers:
 - "192.168.1.2"

storm.local.dir: "/usr/local/storm/data"
java.library.path: "/usr/lib/jvm/java-7-openjdk-amd64/lib"

nimbus.host: "192.168.1.2"
nimbus.task.launch.secs: 240
supervisor.worker.start.timeout.secs: 240
supervisor.worker.timeout.secs: 240  
supervisor.slots.ports:
- 6700
- 6701

java版

java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

我以this blog为例。

2 个答案:

答案 0 :(得分:5)

分辨率取决于您正在运行的Storm的版本。


[编辑]

Storm 0.9.1今天刚刚发布(2014年2月22日):发布说明提到零默认依赖现在默认由Netty取代

https://git-wip-us.apache.org/repos/asf?p=incubator-storm.git;a=blob_plain;f=CHANGELOG.md;hb=254ec135b9a67b1e7bc8e979356274aee2e7d715


以前版本的安装说明(我成功使用过去的0.8.2)在这里,他们确实提到zeroMq和jzmq作为依赖:

https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster

0.9.0.1的安装说明如下:他们没有提到zeroMQ也没有提到jzmq:

http://storm.incubator.apache.org/documentation/Setting-up-a-Storm-cluster.html

根据Storm 0.9.0的发行说明,我们现在可以在Netty和ZeroMQ之间选择元组传输,所以理论上你应该能够通过升级到0.9.0.1来解决这个问题,而不是安装zeroMQ和jzmq并按照此处的说明配置storm:

(黎明,不允许发布第3个链接,好的,发布说明在Storm博客上,在Storm孵化器apache网站上^ __ ^)

- Svend

答案 1 :(得分:3)

显然,jzmq缺失了。确保jzmq在所有计算机上构建成功。还要确保jzmq位于 java.library.path

顺便说一句,该文件 storm.yaml 而不是 Storm.yaml

查看有关如何Compiling JZMQ on Ubuntu

的问题