我正在使用storm-kafka-client 1.2.1并为KafkaTridentSpoutOpaque创建我的spout配置,如下所示
kafkaSpoutConfig = KafkaSpoutConfig.builder(brokerURL, kafkaTopic)
.setProp(ConsumerConfig.GROUP_ID_CONFIG,"storm-kafka-group")
.setProcessingGuarantee(ProcessingGuarantee.AT_MOST_ONCE)
.setProp(ConsumerConfig.CLIENT_ID_CONFIG,InetAddress.getLocalHost().getHostName())
我无法在Kafka和Zookeeper中找到我的group-id和偏移量。通过Zookeeper,我尝试使用zkCli.sh并尝试ls /consumers
,但没有,因为我认为Kafka本身现在维持偏移而不是动物园管理员。
我也尝试使用下面的命令Kafka
bin/kafka-run-class.sh kafka.admin.ConsumerGroupCommand --list --bootstrap-server localhost:9092
Note: This will not show information about old Zookeeper-based consumers.
console-consumer-20130
console-consumer-82696
console-consumer-6106
console-consumer-67393
console-consumer-14333
console-consumer-21174
console-consumer-64550
如果我重新启动拓扑结构,有人可以帮助我找到我的偏移量并重新播放我在Kafka的事件吗?
答案 0 :(得分:1)
Trident不会在Kafka中存储偏移量,而是在Storm的Zookeeper中存储偏移量。如果您使用Storm的Zookeeper配置的默认设置运行,Storm的Zookeeper中的路径将类似于/coordinator/<your-topology-id>/meta
。
该路径下面的对象将包含第一个和最后一个偏移量,以及每个批次的主题分区。所以例如/coordinator/<your-topology-id>/meta/15
将包含批号15中发出的第一个和最后一个偏移量。
重启后的喷口是否重放偏移量是由您在FirstPollOffsetStrategy
中设置的KafkaSpoutConfig
控制的。默认值为UNCOMMITTED_EARLIEST
,在重新启动时不会重新开始。请参阅https://github.com/apache/storm/blob/v1.2.1/external/storm-kafka-client/src/main/java/org/apache/storm/kafka/spout/KafkaSpoutConfig.java#L126处的Javadoc。