【问题标题】:Error on initialization of server mk-worker服务器 mk-worker 初始化时出错
【发布时间】:2013-07-25 08:39:50
【问题描述】:

我正在尝试使用 maven 在本地模式下使用storm-0.8.1 和zookeeper-3.3.3 执行wordcount 示例。但是,每次我运行此命令时,都会出现以下错误:

mvn exec:java -Dexec.mainClass="com.test.newpackage.TopologyMain" Dexec.args="resource/words.txt"

我之前搜索并发现我使用的是 zookeeper 3.4.5。所以,然后我将我的 zookeeper 更改为 3.3.3。但仍然无法执行。如果有人想在这里参考我的代码是link

 INFO  com.netflix.curator.framework.imps.CuratorFrameworkImpl  - Starting
    3706 [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2001] WARN  org.apache.zookeeper.server.NIOServerCnxn  - EndOfStreamException: Unable to read additional data from client sessionid 0x1401598b305000a, likely client has closed socket
    3857 [Thread-6] ERROR backtype.storm.daemon.worker  - Error on initialization of server mk-worker
    java.lang.IllegalArgumentException: Could not find component common for null
        at backtype.storm.utils.ThriftTopologyUtils.getComponentCommon(ThriftTopologyUtils.java:39)
        at backtype.storm.task.GeneralTopologyContext.getComponentCommon(GeneralTopologyContext.java:163)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:92)
        at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:30)
        at backtype.storm.daemon.executor$normalized_component_conf.invoke(executor.clj:136)
        at backtype.storm.daemon.executor$executor_data.invoke(executor.clj:159)
        at backtype.storm.daemon.executor$mk_executor.invoke(executor.clj:233)
        at backtype.storm.daemon.worker$fn__4324$exec_fn__1207__auto____4325$iter__4330__4334$fn__4335.invoke(worker.clj:353)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:60)
        at clojure.lang.RT.seq(RT.java:466)
        at clojure.core$seq.invoke(core.clj:133)
        at clojure.core$dorun.invoke(core.clj:2723)
        at clojure.core$doall.invoke(core.clj:2739)
        at backtype.storm.daemon.worker$fn__4324$exec_fn__1207__auto____4325.invoke(worker.clj:353)
        at clojure.lang.AFn.applyToHelper(AFn.java:185)
        at clojure.lang.AFn.applyTo(AFn.java:151)
        at clojure.core$apply.invoke(core.clj:600)
        at backtype.storm.daemon.worker$fn__4324$mk_worker__4380.doInvoke(worker.clj:322)
        at clojure.lang.RestFn.invoke(RestFn.java:512)
        at backtype.storm.daemon.supervisor$fn__4783.invoke(supervisor.clj:457)
        at clojure.lang.MultiFn.invoke(MultiFn.java:177)
        at backtype.storm.daemon.supervisor$sync_processes$iter__4660__4664$fn__4665.invoke(supervisor.clj:247)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:60)
        at clojure.lang.RT.seq(RT.java:466)
        at clojure.core$seq.invoke(core.clj:133)
        at clojure.core$dorun.invoke(core.clj:2723)
        at clojure.core$doall.invoke(core.clj:2739)
        at backtype.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:235)
        at clojure.lang.AFn.applyToHelper(AFn.java:161)
        at clojure.lang.AFn.applyTo(AFn.java:151)
        at clojure.core$apply.invoke(core.clj:602)
        at clojure.core$partial$fn__3794.doInvoke(core.clj:2341)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at backtype.storm.event$event_manager$fn__2484.invoke(event.clj:24)
        at clojure.lang.AFn.run(AFn.java:24)
        at java.lang.Thread.run(Thread.java:724)
    3864 [Thread-6] INFO  backtype.storm.util  - Halting process: ("Error on initialization")

【问题讨论】:

    标签: java maven apache-storm apache-zookeeper


    【解决方案1】:

    根据this discussion,通过重新排序依赖关系解决了类似的问题。所以我建议你将 zookeeper 依赖元素移到你的依赖列表中。

    编辑:

    我怀疑您的问题来自类路径顺序问题。即,多个工件中存在同一个类,而当前加载的违规类的版本是错误的

    要解决这个问题,您需要重新排序您的类路径(您可能知道当同一个类在类路径中多次出现时:第一个获胜)。要重新排序您的类路径,您需要更改 pom.xml 中声明的顺序(至少从 maven 2.0.9 开始)

    引用maven site

    从 Maven 2.0.9 开始,重要的是声明中的顺序:第一个声明获胜。

    【讨论】:

    • 我没明白你的意思。 move the zookeeper dependency element upper in your dependency list 是什么意思?即使读完文章我也无法理解。另外,我使用的是maven 而不是leiningen
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多