2016-07-15 97 views
1

我正在使用下面的jar包使用最新版本的storm。Apache Storm錯誤無法提交本地羣集上的拓撲結構

風暴核-1.0.1

風暴卡夫卡-1.0.1

動物園管理員-3.4.8

kafka_2.10-0.9.0.1

它與storm-core-0.9.3工作正常,但拋出與最新版本的風暴錯誤。

Exception in thread "main" java.lang.IllegalAccessError: tried to access method clojure.lang.RT.classForNameNonLoading(Ljava/lang/String;)Ljava/lang/Class; from class org.apache.storm.daemon.nimbus$loading__5340__auto____6155 
at org.apache.storm.daemon.nimbus$loading__5340__auto____6155.invoke(nimbus.clj:16) 
at org.apache.storm.daemon.nimbus__init.load(Unknown Source) 
at org.apache.storm.daemon.nimbus__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
at clojure.lang.RT.loadClassForName(RT.java:2093) 
at clojure.lang.RT.load(RT.java:430) 
at clojure.lang.RT.load(RT.java:411) 
at clojure.core$load$fn__5066.invoke(core.clj:5641) 
at clojure.core$load.doInvoke(core.clj:5640) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5446) 
at clojure.core$load_lib$fn__5015.invoke(core.clj:5486) 
at clojure.core$load_lib.doInvoke(core.clj:5485) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:626) 
at clojure.core$load_libs.doInvoke(core.clj:5528) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:626) 
at clojure.core$require.doInvoke(core.clj:5607) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at org.apache.storm.testing$loading__5340__auto____6153.invoke(testing.clj:17) 
at org.apache.storm.testing__init.load(Unknown Source) 
at org.apache.storm.testing__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
at clojure.lang.RT.loadClassForName(RT.java:2093) 
at clojure.lang.RT.load(RT.java:430) 
at clojure.lang.RT.load(RT.java:411) 
at clojure.core$load$fn__5066.invoke(core.clj:5641) 
at clojure.core$load.doInvoke(core.clj:5640) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5446) 
at clojure.core$load_lib$fn__5015.invoke(core.clj:5486) 
at clojure.core$load_lib.doInvoke(core.clj:5485) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:626) 
at clojure.core$load_libs.doInvoke(core.clj:5528) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:628) 
at clojure.core$use.doInvoke(core.clj:5618) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at org.apache.storm.LocalCluster$loading__5340__auto____6151.invoke(LocalCluster.clj:17) 
at org.apache.storm.LocalCluster__init.load(Unknown Source) 
at org.apache.storm.LocalCluster__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
at clojure.lang.RT.loadClassForName(RT.java:2093) 
at clojure.lang.RT.load(RT.java:430) 
at clojure.lang.RT.load(RT.java:411) 
at clojure.core$load$fn__5066.invoke(core.clj:5641) 
at clojure.core$load.doInvoke(core.clj:5640) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.lang.Var.invoke(Var.java:379) 
at org.apache.storm.LocalCluster.<clinit>(Unknown Source) 

回答

2

看起來你可能會導入兩個不同版本的Clojure jar。如果你的項目是基於Maven的,嘗試運行

mvn dependency:tree 

這將產生一個樹所有的項目罐子依賴。試着看看你是否檢測到兩個不同版本的Clojure jar,如果是,你的哪個依賴項正在導入它。

+0

我使用的是最新版本的storm-core-1.0.1的Clojure.1.6.0.jar –

+1

Storm 1.0.1使用的是Clojure 1.7.0,這很可能是你的問題的原因。 [鏈接](https://mvnrepository.com/artifact/org.apache.storm/storm-core/1.0.1) –

+0

@ Re'em:非常感謝這個答案以及關於clojure v1.7.0的具體評論!我完全被卡住了。 –

相關問題