如何在Storm topology jar中包含与Maven的依赖关系以进行集群部署?

inkz8wg9  于 2022-12-09  发布在  Apache
关注(0)|答案(2)|浏览(201)

我正在尝试将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添加/删除哪些代码行才能使它工作呢?

35g0bw71

35g0bw711#

我已经修好了。
问题是Docker集群上的Storm依赖项是在org.apache.storm下归档的,而本地构建使用的是backtype.stormChanging the referencesorg.apache.storm似乎已经完成了这个任务。

iyzzxitl

iyzzxitl2#

您应该在pom.xml文件的storm依赖项中添加“provided”作用域。

相关问题