2014-02-09 71 views
1

我的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爲例。

回答

5

分辨率取決於您正在運行的風暴的版本。


[編輯]

風暴0.9.1剛剛今日(2014年2月22日):發行說明提到現在zeroMQ依賴默認情況下通過了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

根據風暴0.9.0的發佈說明,我們現在有一個元組運輸的Netty和ZeroMQ之間的選擇,所以從理論上講,你應該能夠解決這個問題通過升級到0.9.0.1,不安裝zeroMQ也不jzmq和配置風暴這裏提到:

(黎明,不允許發佈第三環節,確定後,發行說明都在風暴的博客,在風暴孵化Apache Web站點^ __ ^)

- 斯文

+0

風暴0.9。0發佈說明: http://storm.incubator.apache.org/2013/12/08/storm090-released.html – Svend

+0

你能幫我這個http://stackoverflow.com/questions/32612810/exception-after -submitting拓撲?noredirect = 1#comment53179266_32612810 – 2015-09-21 06:12:29

3

顯然,jzmq丟失。確保jzmq已在您的所有機器上成功建立。請確保jzmq在java.library.path之下。

順便提一句,該文件是storm.yaml沒有Storm.yaml

檢查如何Compiling JZMQ on Ubuntu這個問題。