我正在尝试将Storm拓扑部署到本地独立集群。我将包含指向我的项目的Github repo的链接,以便您可以看到我的代码...
我有一个以本地模式运行的simple Storm topology,我有tweaked to deploy到一个对接集群(simple configuration基于recommended instructions)。
但是,当我尝试让它运行时,我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: backtype/storm/topology/IRichSpout
从this question来看,在构建topology.jar
时,我只需要将storm-core
作为依赖项包含在Maven项目中。
因此,我使用adjusted my pom.xml
文件(我没有使用Eclipse或任何IDE,我只是从命令行运行Maven)将storm-core
作为依赖项包括在内,并将maven-assembly-plugin
包括在内以打包jar-with-dependencies
。但现在,当我尝试运行集群时,我收到一个错误消息:
...
java.io.IOException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar
...
那么我到底应该包含什么作为捆绑的依赖项呢?我需要向我的pom.xml
添加/删除哪些代码行才能使它工作呢?
2条答案
按热度按时间35g0bw711#
我已经修好了。
问题是Docker集群上的Storm依赖项是在
org.apache.storm
下归档的,而本地构建使用的是backtype.storm
。Changing the references到org.apache.storm
似乎已经完成了这个任务。iyzzxitl2#
您应该在pom.xml文件的storm依赖项中添加“provided”作用域。