Deploying topology on Storm Server Error: NoNode for /brokers/topics/blockdata/partitions

Deploying topology on Storm Server Error: NoNode for /brokers/topics/blockdata/partitions

我正在尝试将 storm/flux 拓扑部署到远程服务器。拓扑已成功部署,但在服务器风暴 UI 上,它显示 spout 滞后错误:

Unable to get offset lags for kafka. Reason: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/blockdata/partitions at org.apache.zookeeper.keeperExceptiom.create...

尽管我已经使用以下方法检查了我的动物园管理员:

ls /brokers/topics/blockdata/partitions, it exists.

这是我的 spout 配置:

  - id: "zkHosts"
    className: "org.apache.storm.kafka.ZkHosts"
    constructorArgs:
      - "172.25.33.191:2181"

  - id: "startingOffsetTime"
    className: "kafka.api.OffsetRequest"
    factory: "LatestTime"



  - id: "spoutConfig"
    className: "org.apache.storm.kafka.SpoutConfig"
    constructorArgs:
      - ref: "zkHosts"
      - "blockdata"
      - "/brokers/topics"
      - "myId"
    properties:
      - name: "ignoreZkOffsets"
        value: true
      - name: "scheme"
        ref: "stringMultiScheme"
      - name: "startOffsetTime"
        ref: "startingOffsetTime"

注意:此拓扑在本地模式下运行良好。

请看下面的截图:

Error Screenshot

这来自 Storm UI 的一部分,它应该向您展示您的 spout 落后于对数末端偏移的距离。如果您有兴趣,代码在这里 https://github.com/apache/storm/blob/v1.2.1/external/storm-kafka-monitor/src/main/java/org/apache/storm/kafka/monitor/KafkaOffsetLagUtil.java

请尝试让拓扑运行稍等,然后尝试重新打开Storm UI,看看错误是否继续发生。有可能你刚好在 Kafka spout 设法写入 Zookeeper 之前打开了 Storm UI。

你不能使用collector.ack(tuple);在你的 bolt.It 中导致 Spout 重复发送元组并且不在 zookeeper 中记录偏移量。