【问题标题】:kafka 0.11 reset offset for consumer group by --to-datetimekafka 0.11 通过 --to-datetime 重置消费者组的偏移量
【发布时间】:2018-05-03 15:31:36
【问题描述】:
我想通过时间戳重置 kafka 消费者组的偏移量。
但是当我使用以下命令时:
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --reset-offsets --to-datetime 2017-11-1907:52:43:00:000 --group <group_name> --topic <topic_name> --execute
我收到以下错误消息:
注意:这只会显示有关使用
Java 消费者 API(非基于 ZooKeeper 的消费者)。
如何根据时间重置偏移量
【问题讨论】:
标签:
apache-kafka
kafka-consumer-api
【解决方案1】:
旧线程,但是如果您想使用 kafka 偏移,此链接会很有帮助。
https://gist.github.com/marwei/cd40657c481f94ebe273ecc16601674b#file-how_to_reset_kafka_consumer_group_offset-md
重点:
Kafka 0.11.0.0 (Confluent 3.3.0) 添加了对操作偏移量的支持
通过 cli kafka-consumer-groups 命令为消费者组。
列出该组订阅的主题bash kafka-consumer-groups --bootstrap-server <kafkahost:port> --group
<group_id> --describe 注意“CURRENT-OFFSET”下的值和
“对数结束偏移”。 “CURRENT-OFFSET”是这个消费者的偏移量
组当前位于每个分区中。
重置主题的消费者偏移量(预览版)bash kafka-consumer-groups --bootstrap-server <kafkahost:port> --group
<group_id> --topic <topic_name> --reset-offsets --to-earliest 这个
将打印重置的预期结果,但不会实际运行它。
重置主题的消费者偏移量(执行)bash kafka-consumer-groups --bootstrap-server <kafkahost:port> --group
<group_id> --topic <topic_name> --reset-offsets --to-earliest
--execute这将执行重置并将指定主题的消费者组偏移量重置回0。
重复1检查是否重置成功
注意
该命令还提供了一个选项来重置所有主题的偏移量
消费组订阅:--all-topics
【解决方案2】:
调用
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092
--group test-group --reset-offsets --all-topics --to-datetime 2017-08-04T00:00:00.000
可以将偏移量重置为给定日期时间之后最早的偏移量。日期时间格式为yyyy-MM-ddTHH:mm:ss.xxx,例如 2017-08-04T00:00:00.000。
您还可以按持续时间重置偏移量。请参阅下面的示例:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092
--group test-group --reset-offsets --all-topics --by-duration PT0H30M0S
--by-duration 将偏移量重置为当前时间戳的持续时间偏移量。格式:'PnDTnHnMnS'。
【解决方案3】:
这不是错误,而只是警告 - 因为您指定了 --bootstrap-server 选项,所以更改只会影响使用新 Java API 实现的消费者。如果您有使用其他 API 构建的消费者,则需要指定 --zookeeper 选项。