java - Apache Storm - 无法找到或加载主类 org.apache.storm.starter.ExclamationTopology

标签 java maven apache-storm

我对 Maven 和 Storm 很陌生,所以我尝试按照 https://github.com/apache/storm/tree/master/examples/storm-starter 中的说明进行操作。 。我当前的路径是/home/luc/theTest/storm/examples/storm-starter。目标文件夹内有一个storm-starter-2.0.0-SNAPSHOT.jar 文件。我运行时卡住了

storm jar target/storm-starter-*.jar org.apache.storm.starter.ExclamationTopology -local

我收到此错误

ionTopology -local Running: /usr/lib/jvm/java-8-openjdk-amd64/bin/java -client -Ddaemon.name= -Dstorm.options= -Dstorm.home=/home/luc/stormTest/apache-storm-1.1.1 -Dstorm.log.dir=/home/luc/stormTest/apache-storm-1.1.1/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /home/luc/stormTest/apache-storm-1.1.1/lib/servlet-api-2.5.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/slf4j-api-1.7.21.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/objenesis-2.1.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/kryo-3.0.3.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/log4j-core-2.8.2.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/log4j-over-slf4j-1.6.6.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/storm-core-1.1.1.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/log4j-slf4j-impl-2.8.2.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/minlog-1.3.0.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/log4j-api-2.8.2.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/clojure-1.7.0.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/ring-cors-0.1.5.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/asm-5.0.3.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/reflectasm-1.10.1.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/disruptor-3.3.2.jar:/home/luc/stormTest/apache-storm-1.1.1/lib/storm-rename-hack-1.1.1.jar:target/storm-starter-2.0.0-SNAPSHOT.jar:/home/luc/stormTest/apache-storm-1.1.1/conf:/home/luc/stormTest/apache-storm-1.1.1/bin -Dstorm.jar=target/storm-starter-2.0.0-SNAPSHOT.jar -Dstorm.dependency.jars= -Dstorm.dependency.artifacts={} org.apache.storm.starter.ExclamationTopology -local Error: Could not find or load main class org.apache.storm.starter.ExclamationTopology

我做错了什么吗?我也有点困惑是否必须先运行 nimbus 和supervisor。我尝试过使用和不使用它们,但无论如何都不起作用。一直在网上搜索但没有任何效果。不确定还可以尝试什么。

最佳答案

这通常是由于storm-client和storm-starter版本不一致造成的。尝试按照以下步骤操作以使示例正常运行。

  1. http://storm.apache.org/downloads.html 下载最新版本

    • 在此示例中,我们将使用版本 1.1.1
  2. 将其提取到一个文件夹,我们将其命名为 ${STORM_HOME}

  3. cd 进入 ${STORM_HOME}/examples/storm-starter

  4. 执行mvn package -DskipTests=true

    • 这应该在目标文件夹中构建storm-starter jar
      ${STORM_HOME}/examples/storm-starter/target/storm-starter-1.1.1.jar
  5. ${STORM_HOME} 目录运行示例:
    ./bin/storm jar Examples/storm-starter/target/storm-starter-1.1.1.jar org.apache.storm.starter.ExclamationTopology

不要添加-local标志,因为如果没有传递参数,ExclamationTopology似乎只部署在LocalCluster中。您可以在此处查看源代码:
${STORM_HOME}/examples/storm-starter/src/jvm/org/apache/storm/starter/ExclamationTopology.java

关于java - Apache Storm - 无法找到或加载主类 org.apache.storm.starter.ExclamationTopology,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46991792/

相关文章:

java - 我们如何将 IntelliJ IDEA 中的 maven 和 gradle 项目与源代码浏览支持集成?

Azure Web 部署失败 - 给定名称的网站已存在

java - 强制android立即发送UDP数据包?

java - 获取包含依赖项的 jar 文件名作为变量

java - 使用 JComboBox 调整 JTextField

hadoop - Apache Cassandra VS Spark VS Hive VS Storm

java - 如何在 linux 系统启动脚本中启用 java 路径?

java - 表达式的类型必须是数组类型,但它解析为 int

java - 在 Maven 配置文件中排除模拟数据源

eclipse - 如何构建 Apache Storm