【问题标题】:Storm: How to resubmit topology automatically when it occurs exception?Storm:发生异常时如何自动重新提交拓扑?
【发布时间】:2016-09-08 02:23:57
【问题描述】:

我有一个在 Storm 集群上运行的拓扑,它有 3 个主管节点(每个节点 32GRAM)。前几天,拓扑很顺利,一切正常。但是运行几天后总是出现以下错误并且拓扑下降:

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /brokers/topics/TOPICNAME/partitions at storm.kafka.ZkCoordinator.refresh

拓扑使用一个 spout 来消费来自远程 Kafka 服务的消息,该服务位于远程服务器上,该服务器也是 zookeeper 服务。

我猜这个异常的原因是zookeeper服务器不稳定,或者网络连接不稳定。

我没有权限对远程 kafka/zookeeper 服务器做任何事情,所以我需要一个解决方案来保持拓扑稳定运行。有没有办法让拓扑稳定运行,或者在异常出现时跳过异常? 或者有没有自动重新提交拓扑?

非常感谢!

【问题讨论】:

    标签: apache-storm apache-zookeeper runtimeexception topology


    【解决方案1】:

    您应该做的第一件事是在谷歌上搜索what causes the connection loss error
    然后去storm的日志文件,查看是哪一行代码导致了错误。
    做事的正确方法是找出导致错误的原因。

    但是,如果您想要更快的临时解决方案,请使用Storm's REST API 来终止拓扑。然后,您可以使用普通的 Java 程序或任何语言的脚本从命令行重新启动拓扑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      相关资源
      最近更新 更多