2016-07-15 62 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的具体评论!我完全被卡住了。 –

相关问题