2016-07-15 2 views
1

Я использую последнюю версию шторма ниже банок.Apache Storm Ошибка не в состоянии отправить топологию на Localcluster

ливневых ядро-1.0.1

ливневых Кафка-1.0.1

Zookeeper-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. Если ваш проект основан на Maven, попробуйте выполнить

mvn dependency:tree 

Это даст дерево со всеми вашими зависимостями jar. Попытайтесь проверить, не обнаружено ли у вас две разные версии флага Clojure, и если да, то какая из ваших зависимостей импортирует его.

+0

Я использую Clojure.1.6.0.jar с последней версией storm-core-1.0.1 –

+1

Storm 1.0.1 использует Clojure 1.7.0, это может быть причиной вашей проблемы. [link] (https://mvnrepository.com/artifact/org.apache.storm/storm-core/1.0.1) –

+0

@ Re'em: большое спасибо за этот ответ и конкретный комментарий о clojure v1.7.0! Я полностью застрял. –