【问题标题】:Apache Storm Error not able to submit topology on LocalclusterApache Storm 错误无法在 Localcluster 上提交拓扑
【发布时间】:2016-11-18 21:43:27
【问题描述】:

我正在使用带有以下 jars 的最新版本的 Storm。

storm-core-1.0.1

storm-kafka-1.0.1

动物园管理员-3.4.8

kafka_2.10-0.9.0.1

storm-core-0.9.3 可以正常工作,但使用最新版本的 Storm 会引发错误。

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)

【问题讨论】:

    标签: java clojure apache-storm apache-zookeeper


    【解决方案1】:

    看起来您可能要导入两个不同版本的 Clojure jar。如果您的项目是基于 Maven 的,请尝试运行

    mvn dependency:tree
    

    这将生成一个包含所有项目 jar 依赖项的树。尝试查看您是否检测到两个不同版本的 Clojure jar,如果是,您的哪个依赖项正在导入它。

    【讨论】:

    • 我正在使用 Clojure.1.6.0.jar 和最新版本的storm-core-1.0.1
    • Storm 1.0.1 正在使用 Clojure 1.7.0,这很可能是您的问题的原因。 link
    • @Re'em:非常感谢这个答案和关于 clojure v1.7.0 的具体评论!我完全被困住了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2019-08-04
    相关资源
    最近更新 更多