我正在尝试将storm/flux拓扑部署到远程服务器。拓扑已成功部署,但在servers storm ui上,它显示“喷口滞后错误”:
无法获取Kafka的偏移滞后。原因:org.apache.zookeeper.keeperexception$nonodeexception:keepererrorcode=nonode for/brokers/topics/blockdata/partitions at org.apache.zookeeper.keeperexception.create。。。
尽管我已经用以下方式登记了我的Zookeeper:
ls /brokers/topics/blockdata/partitions, it exists.
这是我的喷口配置:
- 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"
注意:此拓扑在本地模式下运行良好。
请看下面的截图:
错误屏幕截图
2条答案
按热度按时间6za6bjd01#
这是来自storm用户界面的一部分,它应该向您显示喷口距离原木末端偏移有多远。如果你感兴趣代码在这里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喷口给zookeeper写信之前打开了storm ui。
9jyewag02#
不能使用collector.ack(tuple);在你的螺栓。它会导致喷口重复发送元组,不记录在zookeeper偏移。