我的nimbus主机和主管运行正常。当我向nimbus主机提交wordcount拓扑时,它成功地上传了。上传后拓扑管理器给出错误
kill: No such process
当我检查 worker-6001.log
以及 6002.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")
我的配置是
风暴.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)
我以这个博客为例。
2条答案
按热度按时间p5fdfcr11#
显然,jzmq不见了。确保jzmq在您的所有机器上都成功构建。还要确保jzmq位于java.library.path下。
顺便说一下,文件是storm.yaml而不是storm.yaml
检查这个关于如何在ubuntu上编译jzmq的问题。
66bbxpm52#
解决方案取决于您运行的storm版本。
[编辑]
Storm0.9.1今天(2014年2月22日)刚刚发布:发行说明提到zeromq依赖项现在默认被netty取代
https://git-wip-us.apache.org/repos/asf?p=incubator-storm.git;a=斑点平原;f=changelog.md;血红蛋白=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,如下所述:
(dawn,不允许发布第3个链接,好吧,发布说明在storm博客上,storm孵化器apache网站上^^)
--斯文德