Apache Storm - 暴风雨启动时的ClassNotFoundException

时间:2015-12-25 23:56:01

标签: java maven apache-storm classnotfoundexception

我正试图让storm-starter起作用。我尝试了邮件列表,这似乎没有获得牵引力。当我运行以下内容时:

$ mvn compile exec:java -Dstorm.topology=storm.starter.ExclamationTopology

我得到error

Error on initialization of server mk-worker
java.lang.RuntimeException: java.lang.ClassNotFoundException: backtype.storm.testing.TestWordSpout

我不是java开发人员,因此我不确定导入应该如何工作。我确实看到了storm-core/src/jvm/backtype/storm/testing/TestWordSpout.java

当我找到任何jar文件时,我看到:

./target/original-storm-starter-0.11.0-SNAPSHOT.jar
./target/storm-starter-0.11.0-SNAPSHOT.jar

当我检查这些jar文件时,TestWordSpout不存在。我按照上面链接的文档从./examples/storm-starter运行我的命令。

据我所知,我完全按照教程进行操作。 OSX El Capitan 10.11.2,Java 1.8.0,Storm 0.9.5。,Maven 3.3.3。任何帮助都会很棒;我很高兴能够开始:)

1 个答案:

答案 0 :(得分:0)

通过maven运行Storm拓扑不是一种可行的方法。您应该在命令行上使用bin/storm jar myJarFile.jar向集群提交拓扑(这也适用于本地模式)。

文件./target/original-storm-starter-0.11.0-SNAPSHOT.jar./target/storm-starter-0.11.0-SNAPSHOT.jar是标准的maven工件,不能用于向群集提交拓扑。

您可以使用maven-jar-plugin(我建议您开始使用) - 您可能需要使用maven-dependency-plugin, too), maven-assembly-plugin , or maven-shade-plugin {{1}提交的jar文件。有很多关于这个问题的问题,所以我不会在这里提供更多细节。举个例子,你可以看一下https://github.com/mjsax/aeolus/blob/master/monitoring/pom.xml的我的git存储库