【问题标题】:Topology not working due to Found multiple defaults.yaml resources when deploying to remote cluster由于在部署到远程集群时发现多个 defaults.yaml 资源,拓扑无法正常工作
【发布时间】:2022-01-14 04:24:02
【问题描述】:

我设置了一个单节点远程集群(所有 nimbus、supervisor、zookeeper)在同一台机器上运行。我将我的拓扑(简单感叹拓扑)部署到这个远程集群。虽然拓扑和 jar 已成功提交,但集群中没有发生任何事情。

当我检查主管日志时,我可以看到: 2015-10-14T21:24:26.340+0000 b.s.d.supervisor [INFO] 42dd0337-1182-45b0-9385-14570c7e0b09 还没有开始

工作日志文件为空。

在主管日志中进行一些调试时,我可以看到 使用命令启动工作者:(一些 java 命令).. 触发这个 java 命令我可以看到这个错误:

原因:java.lang.RuntimeException:发现多个 defaults.yaml 资源。您可能正在将 Storm jar 与拓扑 jar 捆绑在一起。

我在 Internet 和其他东西上进行了更多调试,并修改了我的 build.gradle 文件,但每当我部署拓扑时仍然出现同样的错误。

这是我的 gradle 文件

dependencies {

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: springBootVersion

    compile group: 'org.quartz-scheduler', name: 'quartz', version: quartzVersion

compile group: 'clj-stacktrace' , name: 'clj-stacktrace',version: cljStackTrace

compile group: 'org.apache.storm' , name: 'storm-core',version: stormVersion

    ext {

      fatJarExclude = true

  }

}
task uberjar(type: Jar) {

from files(sourceSets.main.output.classesDir)

from {configurations.compile.collect {zipTree(it)}} {

    exclude "META-INF/*.SF"

    exclude "META-INF/*.DSA"

    exclude "META-INF/*.RSA"

    exclude "META-INF/LICENSE"
}
manifest {

attributes 'Main-Class': 'storm.topology.ExclamationTopology'
}
}

【问题讨论】:

  • 如何排除“defaults.yaml”?

标签: build.gradle apache-storm


【解决方案1】:

jar 文件不能包含defaults.yaml 文件。因此,您需要通过

排除它
exclude "defaults.yaml"

实际上,我建议从您的 jar 中排除所有 Storm 依赖项。它们不是必需的,并且不必要地增加了脂肪罐的大小。

【讨论】:

  • 是的,你是正确的:)。谢谢..我按照这个 "kennethjorgensen.com/blog/2014/…" 解决了它。还有马蒂亚斯,我相信这应该包含在风暴文档中,这样人们就不会像我一样浪费时间:)
  • 也许应该添加。只需为它打开一个拉取请求;)我很确定 Storm 的人们会很乐意接受它。
【解决方案2】:

打包拓扑 jar 时,不要包含 Storm jar,因为 Storm 会将它们放在类路径中。

参考

http://storm.apache.org/releases/1.0.2/Troubleshooting.html

【讨论】:

  • 您的参考链接已损坏
【解决方案3】:

有两种选择:

1- 在 .jar 中使用 winrar "defaults.yaml" 删除

2- 按照提供的方式添加 pom.xml 风暴核心。

在我的 pom.xml 中:

<dependency>
    <groupId>org.apache.storm</groupId>
    <artifactId>storm-core</artifactId>
    <version>0.9.1-incubating</version>
    <scope>provided</scope>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多