2013-07-25 59 views
3

我試圖使用maven在本地模式下使用storm-0.8.1和zookeeper-3.3.3來執行wordcount示例。但是,每次我運行此命令我收到以下錯誤:服務器mk-worker的初始化時出錯

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

我搜查,發現前面我使用飼養員3.4.5所以,後來我改變了我的飼養員到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") 

回答

0

根據this discussion了類似的問題被重新排序的依賴性解決。因此,我建議你在上面移動的動物園管理員dependency元素你的依賴列表。

編輯:

我懷疑你的問題來自於一個classpath順序問題。即存在於多個僞影中的相同類別,並且當前加載的違規類別的版本是錯誤的

要解決此問題,您需要重新排序您的類路徑(您可能知道,當同一個類在classpath中多次出現時:第一個win)。要重新排列你的classpath,你需要改變你的pom.xml聲明的順序(因爲行家2.0.9至少)從maven site

報價:

since Maven 2.0.9 it's the order in the declaration that counts: the first declaration wins.

+0

我不明白你的意思。通過'將依賴關係列表中的zookeeper依賴項元素移動到上方,你是什麼意思?即使閱讀了我無法理解的文章。另外,我使用'maven'而不是'leiningen' – Naresh