Apache kafka 如何更改主题的起始偏移量?

Apache kafka 如何更改主题的起始偏移量?,apache-kafka,offset,Apache Kafka,Offset,是否可以更改新主题的开始偏移量?我想创建一个新主题,从偏移量10000开始阅读。如何操作?您可以在zookeeper外壳的帮助下执行此操作。卡夫卡使用zookeeper跟踪消费者补偿 转到kafka bin目录并调用zookeeper shell。(我的kafka版本是0.8.0) 现在使用zookeeper get命令 get /consumers/consumer_group_id/offsets/topic/0 set /consumers/consumer_group_id/offse

是否可以更改新主题的开始偏移量?我想创建一个新主题,从偏移量
10000
开始阅读。如何操作?

您可以在zookeeper外壳的帮助下执行此操作。卡夫卡使用zookeeper跟踪消费者补偿

转到kafka bin目录并调用zookeeper shell。(我的kafka版本是0.8.0)

现在使用zookeeper get命令

get /consumers/consumer_group_id/offsets/topic/0
set /consumers/consumer_group_id/offsets/topic/0 10000
它显示了类似于

2043
cZxid = 0x4d
ctime = Wed Mar 18 03:56:32 EDT 2015
...
此处2043是消耗的最大偏移量。使用zookeeper Set命令将其设置为所需值

get /consumers/consumer_group_id/offsets/topic/0
set /consumers/consumer_group_id/offsets/topic/0 10000
路径的框架如下/consumers/[consumer\u group\u id]/offsets/[topic]/[partition\u id]。
您必须使用适当的使用者组、主题和分区id进行替换


*此外,由于您提到这是卡夫卡的一个新实例,我不确定消费者是否会建立联系和消费者群体

因为卡夫卡0.9偏移量存储在主题中。要更改偏移,请使用以下命令:

覆盖使用者将在下一次
轮询(超时)
时使用的提取偏移量。如果对同一分区多次调用此API,则将在下次轮询()时使用最新的偏移量。注意,如果该API在消费中途任意使用,则可能丢失数据,以重置取偏移量

。 由于卡夫卡,您可以使用脚本
kafka consumer groups.sh
来自

列表中列出的其他选项

您还可以定义要重置的分区,例如:

  • 将主题foo分区0的偏移量重置为1

    --重置偏移量--组测试.group--主题foo:0--偏移量1

  • 将主题foo分区0,1,2的偏移量重置为最早

    --重置偏移量--组测试.group--主题foo:0,1,2--到最早的

提醒:不要忘记
--execute
标志(参见KIP中的执行选项)。如果没有此标志,脚本将仅按范围打印场景的结果,例如:

TOPIC                 PARTITION NEW-OFFSET NEW-LAG LOG-END-OFFSET CONSUMER-ID HOST CLIENT-ID
foo                   0         90         10      100            -           -    -
归功于。
如果需要更改偏移量,则使用

创建表格

kafka-consumer-groups --bootstrap-server {url} \
--topic {topic} \
--group {consumer} \
--reset-offsets --to-datetime 2020-11-11T00:00:00.000+0900 \
--execute

不,很多人都熟悉这个伟大的工具。非常感谢你救了我一天。
主题:分区
救了我一天。谢谢。需要注意的是,您的消费群体必须被视为非活动的,否则它将不会应用任何更改。
TOPIC                 PARTITION NEW-OFFSET NEW-LAG LOG-END-OFFSET CONSUMER-ID HOST CLIENT-ID
foo                   0         90         10      100            -           -    -
kafka-consumer-groups --bootstrap-server {url} \
--topic {topic} \
--group {consumer} \
--reset-offsets --to-datetime 2020-11-11T00:00:00.000+0900 \
--execute