Apache风暴:无法加载主类org.apache.storm.starter.ExclamationTopology

时间:2016-02-20 16:36:18

标签: java jar apache-storm

首先,我已经提到了很多类似的问题,但仍然无法修复它。 我已正确安装了nimbus和supervisor,并且在安装" make install"即使是maven clean install和compile也没有任何错误,甚至我的应用程序都是用jzmq正确设置的,并且还通过./storm nimbus启动了我的nimbus并且由./storm主管启动了我的主管但是当我这样做时

  

./ storm jar~ / ccbd-work / storm2 / examples / target / storm-starter-topologies-0.10.0.jar org.apache.storm.starter.ExclamationTopology

我收到以下错误

  

正在运行:/ usr / lib / jvm / java-7-openjdk-amd64 / bin / java -client -Ddaemon.name = -Dstorm.options = -Dstorm.home = / home / hubatrix / ccbd-work / storm2 /apache-storm-0.10.0 -Dstorm.log.dir = / home / hubatrix / ccbd-work / storm2 / apache-storm-0.10.0 / logs -Djava.library.path = / usr / local -Dstorm.conf .file = -cp /home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/log4j-core-2.1.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10 0.0 / lib目录/ SLF4J-API-1.7.7.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/log4j-over-slf4j-1.6.6.jar:/家/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/asm-4.0.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/reflectasm-1.07- shaded.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/minlog-1.2.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/ LIB / KRYO-2.21.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/disruptor-2.10.4.jar:/家庭/ hubatrix / ccbd工作/风暴2 / apache-风暴-0.10.0 / lib目录/ servlet的API-2.5.jar:/家庭/ hubatrix / ccbd工作/风暴2 / AP疼痛风暴-0.10.0 / LIB / hadoop的-AUTH-2.4.0.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/log4j-api-2.1.jar:/家用/ hubatrix / ccbd工作/风暴2 / Apache的风暴0.10.0 / lib目录/ log4j的-SLF4J-IMPL-2.1.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib /clojure-1.6.0.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/lib/storm-core-0.10.0.jar:/home/hubatrix/ccbd-work/storm2 /examples/target/storm-starter-topologies-0.10.0.jar:/home/hubatrix/ccbd-work/storm2/apache-storm-0.10.0/conf:/home/hubatrix/ccbd-work/storm2/apache -storm-0.10.0 / bin -Dstorm.jar = / home / hubatrix / ccbd-work / storm2 / examples / target / storm-starter-topologies-0.10.0.jar org.apache.storm.starter.ExclamationTopology   错误:无法找到或加载主类org.apache.storm.starter.ExclamationTopology

我在这里做错了什么?请帮我解决这个问题 而且我正在运行这是在本地机器上我的storm.yaml配置正确。

这是我的storm2 http://paste.linux.chat/view/e4424189的文件结构,如果有的话我在做错的时候从中定义正确的我。

我的每一个设置都是正确的,因为Matthias J. Sax提到我的jar文件存在问题,但是我真的不知道问题是jar文件(拓扑)本身还是路径我只是从下载一个新的jar文件https://dl.dropboxusercontent.com/s/kc933u6vz2crqkb/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar然后跑了

  

./ storm jar~ / ccbd-work / storm2 / storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology WordCount -c nimbus.host = localhost

它就像走进蛋糕一样,再次感谢回应

2 个答案:

答案 0 :(得分:2)

它不在正确的文件夹中:错误消息显示“org.apache.storm.starter.ExclamationTopology”,但类文件位于文件夹“storm / starter”中。 (在Java中,包名必须与目录结构一致。)

最近,

ExclamationTopology已从包storm.starter移至org.apache.storm.starter。在版本0.10.0中,它仍然在storm.starter中。因此,您需要通过

提交拓扑
./storm jar ~/ccbd-work/storm2/examples/target/storm-starter-topologies-0.10.0.jar storm.starter.ExclamationTopology

答案 1 :(得分:0)

我也遇到了这个问题,困惑了两天。然后我发现这是错误的文件夹问题。解决方案实际上很容易。您无需在前面添加“ org.apache.storm.starter”。这意味着您所需要做的就是将CD放入启动文件夹,然后运行“ storm jar〜/ ccbd-work / storm2 / examples / target / storm-starter-topologies-0.10.0.jar ExclamationTopology”。就这样。然后,您可以在localhost:8080检查拓扑。祝你好运!