Ubuntu Apache Storm jar错误:无法找到或加载主类storm.starter

时间:2015-04-28 05:24:55

标签: jar apache-storm

我关注https://github.com/apache/storm/tree/master/examples/storm-starter。我在我的VMWare上使用Ubuntu 14.04 LTS。

我可以在 / home / user / storm / examples / storm-中运行 mvn exec:java -D storm.topology = storm.starter.RollingTopWords 启动目录顺利没问题。但是我无法在Apache Storm中运行它。

我的 / home / user / storm / examples / storm-starter 目录中有 storm-starter-topologies-0.9.3.jar 。 我也有 storm-starter-0.9.3.ja r&我的 / home / user / storm / examples / storm-starter / target 目录中的 storm-starter-0.9.3-jar-with-dependencies.jar

以下是我在 / home / user / storm / bin 目录中尝试过的命令:

./storm jar storm-starter-*.jar storm.starter.RollingTopWords

./storm jar storm-starter-0.9.3-jar-with-dependencies.jar storm.starter.RollingTopWords

./storm jar storm-starter-jar-with-dependencies.jar storm.starter.RollingTopWords

./storm jar storm-starter-topologies-0.9.3.jar storm.starter.RollingTopWords

具有拓扑名称:

./storm jar storm-starter-0.9.3-jar-with-dependencies.jar storm.starter.RollingTopWords slidingWindowCounts

./storm jar storm-starter-jar-with-dependencies.jar storm.starter.RollingTopWords slidingWindowCounts

./storm jar storm-starter-topologies-0.9.3.jar storm.starter.RollingTopWords slidingWindowCounts 

./storm jar storm-starter-0.9.3-jar storm.starter.RollingTopWords slidingWindowCounts 

所有人都会遇到同样的错误: 错误:无法找到或加载主类storm.starter.RollingTopWords。

我所有的课程都在 / home / user / storm / examples / storm-starter / target / classes / storm / starter 目录中 RollingTopWords.class存在于该目录中。

我该如何解决这个问题?详细解决方案将有所帮助。

2 个答案:

答案 0 :(得分:1)

问题解决了。出现问题是因为风暴jar在不正确的目录中运行。它应该在/ home / user / storm / examples / storm-starter / target目录下运行,因为我的storm-starter-0.9.3-jar-with-dependencies.jar在该目录中。

答案 1 :(得分:0)

试试这个,假设你在风暴根文件夹里面,即在你的情况下(/home/user/storm/bin

 storm jar /path/to/storm-starter-*.jar storm.starter.RollingTopWords <topology-name> remote

/path/to/storm-starter-*.jar应替换为系统中的实际路径。 这里基本上是<topology-name>&amp; remote params是为暴风雨提供的两个参数(可选)。

如果你只是跑(没有参数)

    storm jar /path/to/storm-starter-*.jar storm.starter.RollingTopWords

它会将拓扑名称假定为slidingWindowCounts,您可以通过将<topology-name>替换为任何有效字符串,以您选择的任何名称更改此名称。
最后一个参数remote告诉storm在集群中运行它,如果你不提供这个参数,它将以本地模式运行它。

请记住,这些参数特定于此特定拓扑,对其他拓扑无效。查看RollingTopWords topology,您将看到它完全取决于开发人员将您的代码配置为接受外部参数或通过硬编码。

相关问题