如何提交Apache Storm拓扑到Storm集群?



我遵循这个教程:https://learn.microsoft.com/en-us/azure/hdinsight/storm/apache-storm-develop-java-topology

到目前为止我所做的是

maven设置
  • vi *.java文件(src/main/java/com/microsoft/example目录下)
    • RandomSentenceSpout.java
    • SplitSentence.java
    • WordCount.java
    • WordCountTopology.java
  • mvn编译
  • jar cf storm.jar *.class(intarget/classes/com/microsoft/example目录)
    • RandomSentenceSpout.class SplitSentence.class WordCount.class wordcountoptopology .class
    • 以上4个文件被用来制作storm.jar文件

然后,我尝试了

storm jar ./storm.jar com.microsoft.example.WordCountTopology WordCountTopology

storm jar ./storm.jar WordCountTopology

,但这两个都失败了,说:

错误:无法找到或加载主类com.microsoft.example.WordCountTopology

错误:无法找到或加载主类WordCountTopology

根据一份文件,它说

语法:storm jar topology-jar-path class…

使用指定的参数运行类的主方法。暴风雨~/中的jar文件和配置文件。Storm被放在类路径上。这个过程是配置后,StormSubmitter将在topology-jar-path

我找不到要修理的地方。

如何解决这个问题?

我认为你的jar文件不包含类WordCountTopology。你可以通过jar tf storm.jar | grep WordCountTopology查看。

看起来你的jar没有包含一个Manifest文件来保存主类的信息。

尝试包含Manifest文件,或者您可以运行下面的java命令来包含Manifest文件

希望这有效!

jar cvfe storm.jar mainClassNameWithoutDotClassExtn *.class

最新更新