Kafka 0.11如何重置偏移量

时间:2017-08-14 09:02:13

标签: apache-kafka

我正在尝试使用最新的Kafka CLI工具重置消费者偏移量。

kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group my-group --reset-offsets --to-earliest --all-topics

结果我看到了这个输出:

TOPIC                            PARTITION  NEW-OFFSET
FirstTopic                       0          0
SecondTopic                      0          0

但是再次运行命令:

kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group my-group --describe

导致输出:

Consumer group 'my-group' has no active members.

TOPIC              PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG
FirstTopic         0          1230            1230            0  
SecondTopic        0          1022            1022            0

我尝试了其他选项,例如重置为显式偏移或直接指定主题但结果相同。输出表明操作成功,同时使用describe命令检查偏移或调试显示偏移未被更改。

任何人都可以在非动物园管理员经纪人中重置消费者抵消。

2 个答案:

答案 0 :(得分:50)

默认情况下,--reset-offsets只打印操作结果。要实际执行操作,您需要在命令中添加--execute

kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group
my-group --reset-offsets --to-earliest --all-topics --execute

答案 1 :(得分:1)

尽管已接受的答案可以完美地回答OP问题,但仍有更多参数可用于重置偏移量。因此,添加此答案以扩展可接受的答案。

将所有主题的偏移量重置为最早的消费者组

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-earliest --all-topics --execute

将特定主题的偏移量重置为最早的消费者组

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-earliest --topic <my-topic> --execute

要将特定主题的偏移量重置为消费者组中的特定偏移量

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-offset 1000 --topic <my-topic> --execute

其他受支持的参数:

-移位 [正整数或负整数]-从给定整数向前或向后偏移偏移量。

-当前-最新-要偏移- -最早

-至今时间 [日期时间格式为 yyyy-MM-ddTHH:mm:ss.xxx ]

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-datetime 2017-08-04T00:00:00.000 [ --all-topics or --topic <topic-name> ] --execute

-按持续时间 [格式为 PnDTnHnMnS ]

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --by-duration PT0H10M0S [ --all-topics or --topic <topic-name> ] --execute

重置为从当前时间戳记的持续时间偏移。

如何验证?

使用以下命令检查偏移量的当前/结束位置,并确认重置是否有效。

kafka-consumer-groups.sh --bootstrap-server <kafka_host:port> --group <group_id> --describe

示例输出:

Consumer group 'group1' has no active members.

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
intro           0          0               99              99              -               -               -

可能的错误:

  

错误:仅当组'[group_name]'不活动,但当前状态为稳定时,才可以重置分配。

“稳定”表示该组正在运行一个活动的使用者。因此,首先您必须停止活动的使用者,然后重试重置偏移量。

如果消费者组有有效的消费者,则无法重置偏移量