分享

storm拓扑运行时无法启动nimbus

rambo_js1019 发表于 2016-5-31 23:06:12 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 8593
启动storm的拓扑时报了这个异常:
2016-05-31T19:49:24.749+0800 b.s.d.worker [ERROR] Error on initialization of server mk-worker
java.lang.RuntimeException: Fail to construct messaging plugin from plugin backtype.storm.messaging.zmq.ZMQContext
        at backtype.storm.messaging.TransportFactory.makeContext(TransportFactory.java:53) ~[storm-core-0.9.4.jar:0.9.4]
        at backtype.storm.daemon.worker$worker_data$fn__4872.invoke(worker.clj:197) ~[storm-core-0.9.4.jar:0.9.4]
        at backtype.storm.util$assoc_apply_self.invoke(util.clj:850) ~[storm-core-0.9.4.jar:0.9.4]
        at backtype.storm.daemon.worker$worker_data.invoke(worker.clj:193) ~[storm-core-0.9.4.jar:0.9.4]
        at backtype.storm.daemon.worker$fn__5033$exec_fn__1754__auto____5034.invoke(worker.clj:398) ~[storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.AFn.applyToHelper(AFn.java:185) [clojure-1.5.1.jar:na]
        at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
        at clojure.core$apply.invoke(core.clj:617) ~[clojure-1.5.1.jar:na]
        at backtype.storm.daemon.worker$fn__5033$mk_worker__5089.doInvoke(worker.clj:389) [storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.RestFn.invoke(RestFn.java:512) [clojure-1.5.1.jar:na]
        at backtype.storm.daemon.worker$_main.invoke(worker.clj:500) [storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.AFn.applyToHelper(AFn.java:172) [clojure-1.5.1.jar:na]
        at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
        at backtype.storm.daemon.worker.main(Unknown Source) [storm-core-0.9.4.jar:0.9.4]
Caused by: java.lang.ClassNotFoundException: backtype.storm.messaging.zmq.ZMQContext
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_45]
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_45]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_45]
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_45]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_45]
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.7.0_45]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_45]
        at java.lang.Class.forName0(Native Method) ~[na:1.7.0_45]
        at java.lang.Class.forName(Class.java:190) ~[na:1.7.0_45]
        at backtype.storm.messaging.TransportFactory.makeContext(TransportFactory.java:38) ~[storm-core-0.9.4.jar:0.9.4]
        ... 13 common frames omitted
2016-05-31T19:49:24.774+0800 b.s.util [ERROR] Halting process: ("Error on initialization")
java.lang.RuntimeException: ("Error on initialization")
        at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:325) [storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.5.1.jar:na]
        at backtype.storm.daemon.worker$fn__5033$mk_worker__5089.doInvoke(worker.clj:389) [storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.RestFn.invoke(RestFn.java:512) [clojure-1.5.1.jar:na]
        at backtype.storm.daemon.worker$_main.invoke(worker.clj:500) [storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.AFn.applyToHelper(AFn.java:172) [clojure-1.5.1.jar:na]
        at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
        at backtype.storm.daemon.worker.main(Unknown Source) [storm-core-0.9.4.jar:0.9.4]
2016-05-31T19:51:22.965+0800 o.a.s.z.ZooKeeper [INFO] Client environment:zookeeper.version=3.4.6-1569
网上搜了下说是storm 0.8版本的一个bug,但是我用的是0.9的版本的,而且打的包是全量包,有知道怎么回事的吗,麻烦告知下,多谢!




已有(1)人评论

跳转到指定楼层
w123aw 发表于 2016-6-1 08:56:52
楼主可以看下下面代码,在配置文件中Config.STORM_MESSAGING_TRANSPORT找到这个参数,可能出问题了
public class TransportFactory {   
    public static IContext makeContext(Map storm_conf) {
        //get factory class name
        String transport_plugin_klassName = (String)storm_conf.get(Config.STORM_MESSAGING_TRANSPORT);
        LOG.info("Storm peer transport plugin:"+transport_plugin_klassName);

        IContext transport = null;
        try {
            //create a factory class
            Class klass = Class.forName(transport_plugin_klassName);
            //obtain a context object
            Object obj = klass.newInstance();
            if (obj instanceof IContext) {
                //case 1: plugin is a IContext class
                transport = (IContext)obj;
                //initialize with storm configuration
                transport.prepare(storm_conf);
            } else {
                //case 2: Non-IContext plugin must have a makeContext(storm_conf) method that returns IContext object
                Method method = klass.getMethod("makeContext", Map.class);
                LOG.debug("object:"+obj+" method:"+method);
                transport = (IContext) method.invoke(obj, storm_conf);
            }
        } catch(Exception e) {
            throw new RuntimeException("Fail to construct messaging plugin from plugin "+transport_plugin_klassName, e);
        }
        return transport;
    }
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条