storm运行JAVA无法加载主类_java – 在本地模式下运行storm-starter拓扑时出现ClassNotFound错误(Win10,OS X)...

我试图通过以下方式在

Windows下调试Storm Topology(在Storm v 1.0.0上):

TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("spout",new RandomIntegerSpout());

builder.setBolt("partialsum",new StatefulSumBolt("partial"),1).shuffleGrouping("spout");

builder.setBolt("printer",new PrinterBolt(),2).shuffleGrouping("partialsum");

builder.setBolt("total",new StatefulSumBolt("total"),1).shuffleGrouping("printer");

Config conf = new Config();

conf.setDebug(false);

LocalCluster cluster = new LocalCluster();

StormTopology topology = builder.createTopology();

cluster.submitTopology("test",conf,topology);

并获得以下错误(来自风暴启动器的WordCount / Exclamation / Stateful或其他拓扑 – 无所谓):

java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.storm.daemon.acker

at org.apache.storm.utils.Utils.javaDeserialize(Utils.java:181) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.utils.Utils.getSetComponentObject(Utils.java:430) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.task$get_task_object.invoke(task.clj:74) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.task$mk_task_data$fn__66.invoke(task.clj:177) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.util$assoc_apply_self.invoke(util.clj:930) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.task$mk_task_data.invoke(task.clj:170) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.task$mk_task.invoke(task.clj:181) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.executor$mk_executor$fn__6149.invoke(executor.clj:371) ~[storm-core-1.0.0.jar:1.0.0]

at clojure.core$map$fn__4553.invoke(core.clj:2622) ~[clojure-1.7.0.jar:?]

at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.7.0.jar:?]

at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.7.0.jar:?]

at clojure.lang.RT.seq(RT.java:507) ~[clojure-1.7.0.jar:?]

at clojure.core$seq__4128.invoke(core.clj:137) ~[clojure-1.7.0.jar:?]

at clojure.core.protocols$seq_reduce.invoke(protocols.clj:30) ~[clojure-1.7.0.jar:?]

at clojure.core.protocols$fn__6506.invoke(protocols.clj:101) ~[clojure-1.7.0.jar:?]

at clojure.core.protocols$fn__6452$G__6447__6465.invoke(protocols.clj:13) ~[clojure-1.7.0.jar:?]

at clojure.core$reduce.invoke(core.clj:6519) ~[clojure-1.7.0.jar:?]

at clojure.core$into.invoke(core.clj:6600) ~[clojure-1.7.0.jar:?]

at org.apache.storm.daemon.executor$mk_executor.invoke(executor.clj:372) ~[storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.worker$fn__6779$exec_fn__3235__auto__$reify__6781$iter__6786__6790$fn__6791.invoke(worker.clj:634) ~[storm-core-1.0.0.jar:1.0.0]

at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.7.0.jar:?]

at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.7.0.jar:?]

at clojure.lang.RT.seq(RT.java:507) ~[clojure-1.7.0.jar:?]

at clojure.core$seq__4128.invoke(core.clj:137) ~[clojure-1.7.0.jar:?]

at clojure.core$dorun.invoke(core.clj:3009) ~[clojure-1.7.0.jar:?]

at clojure.core$doall.invoke(core.clj:3025) ~[clojure-1.7.0.jar:?]

at org.apache.storm.daemon.worker$fn__6779$exec_fn__3235__auto__$reify__6781.run(worker.clj:634) ~[storm-core-1.0.0.jar:1.0.0]

at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_65]

at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_65]

at org.apache.storm.daemon.worker$fn__6779$exec_fn__3235__auto____6780.invoke(worker.clj:606) ~[storm-core-1.0.0.jar:1.0.0]

at clojure.lang.AFn.applyToHelper(AFn.java:178) ~[clojure-1.7.0.jar:?]

at clojure.lang.AFn.applyTo(AFn.java:144) ~[clojure-1.7.0.jar:?]

at clojure.core$apply.invoke(core.clj:630) ~[clojure-1.7.0.jar:?]

at org.apache.storm.daemon.worker$fn__6779$mk_worker__6874.doInvoke(worker.clj:580) [storm-core-1.0.0.jar:1.0.0]

at clojure.lang.RestFn.invoke(RestFn.java:512) [clojure-1.7.0.jar:?]

at org.apache.storm.daemon.supervisor$fn__7647.invoke(supervisor.clj:1200) [storm-core-1.0.0.jar:1.0.0]

at clojure.lang.MultiFn.invoke(MultiFn.java:251) [clojure-1.7.0.jar:?]

at org.apache.storm.daemon.supervisor$get_valid_new_worker_ids$iter__7208__7212$fn__7213.invoke(supervisor.clj:380) [storm-core-1.0.0.jar:1.0.0]

at clojure.lang.LazySeq.sval(LazySeq.java:40) [clojure-1.7.0.jar:?]

at clojure.lang.LazySeq.seq(LazySeq.java:49) [clojure-1.7.0.jar:?]

at clojure.lang.RT.seq(RT.java:507) [clojure-1.7.0.jar:?]

at clojure.core$seq__4128.invoke(core.clj:137) [clojure-1.7.0.jar:?]

at clojure.core$dorun.invoke(core.clj:3009) [clojure-1.7.0.jar:?]

at clojure.core$doall.invoke(core.clj:3025) [clojure-1.7.0.jar:?]

at org.apache.storm.daemon.supervisor$get_valid_new_worker_ids.invoke(supervisor.clj:367) [storm-core-1.0.0.jar:1.0.0]

at org.apache.storm.daemon.supervisor$sync_processes.invoke(supervisor.clj:428) [storm-core-1.0.0.jar:1.0.0]

at clojure.core$partial$fn__4527.invoke(core.clj:2492) [clojure-1.7.0.jar:?]

at org.apache.storm.event$event_manager$fn__909.invoke(event.clj:40) [storm-core-1.0.0.jar:1.0.0]

at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]

at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]

这就像工作者的工作目录中没有jar文件一样.但根据评论“;;在本地模式中没有jar”在Nimbus.clj中它似乎没有错.在版本0.10.0中,不会发生此问题.有任何想法吗?

当我尝试使用maven-exec插件在配置中使用以下命令行(如推荐的here)在Intellij中运行调试时,会出现问题:

compile exec:java -Dstorm.topology=org.apache.storm.starter.WordCountTopology

来自目录,拓扑的POM文件所在的位置.

UPD:问题是由于初始化时工作线程的任何(拓扑或风暴核心)类不可用而导致的. (尝试使用WordCount和Exclamation拓扑说明了这一点).拓扑的POM-s中具有“风暴核心”依赖性和intellij轮廓范围的播放没有给出任何结果.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值