我想删除Kakfa使用者组,以便在应用程序创建使用者并订阅主题时,可以从主题数据的开头开始。
这是使用当前最新的Confluent Platform 3.1.2的单节点开发vm,它使用Kafka 0.10.1.1。
我尝试了正常的语法:
SELECT JSON_MODIFY(attributes, '$.City', JSON_QUERY(attributes, '$.p6i4'))
我收到错误:
SELECT JSON_MODIFY(
JSON_MODIFY(attributes, '$.City', JSON_QUERY(attributes, '$.p6i4')),
'$.p6i4', NULL)
如果我尝试使用zookeeper变体:
sudo /usr/bin/kafka-consumer-groups --new-consumer --bootstrap-server localhost:9092 --delete --group my_consumer_group
我明白了:
Option [delete] is only valid with [zookeeper]. Note that there's no need to delete group metadata for the new consumer as the group is deleted when the last committed offset for that group expires.
如果我使用“旧”消费者列出,我看不到我的消费者群体(或任何其他消费者群体)
sudo /usr/bin/kafka-consumer-groups --zookeeper localhost:2181 --delete --group my_consumer_group
如果我使用“新”消费者列出,我可以看到我的消费者群体,但显然我无法将其删除:
Delete for group my_consumer_group failed because group does not exist.
答案 0 :(得分:7)
在Kafka 0.11(或Confluent 3.3)中,您可以重置任何现有使用者组的偏移,而无需删除主题。实际上,您可以将偏移更改为任何绝对偏移值或时间戳或任何相对位置。
这些新功能都添加了--reset-offsets
命令行工具上的新kafka-consumer-groups
标记。
请参阅KIP-122详细信息https://cwiki.apache.org/confluence/display/KAFKA/KIP-122%3A+Add+Reset+Consumer+Group+Offsets+tooling
答案 1 :(得分:3)
使用Kafka 0.10.2升级到刚刚发布的Confluent Platform 3.2解决了我的根本问题。删除主题时,现在可以正确重置偏移信息。因此,当我创建一个具有相同名称的主题时,消费者从新数据的开头开始。
我仍然无法使用kafka-consumer-groups
工具删除新样式的使用者群体,但我的基本问题已经解决。
在Kafka 0.10.2之前,有黑客攻击,但没有解决这个问题的干净方法。
答案 2 :(得分:3)
如果使用Java客户端,则可以先获取开始偏移量。
TopicPartition partition = new TopicPartition("YOUR_TOPIC", YOUR_PARTITION);
Map<TopicPartition, Long> map = consumer.beginningOffsets(Collections.singleton(partition));
消费者用来开始处理的偏移量(如果不是删除消费者群体)。
Long committedOffset = consumer.committed(partition).offset();
现在,如果您认为从committedOffset
开始就可以,只需轮询记录。
如果你想要开始偏移,
consumer.seek(partition,map.get(partition));
答案 3 :(得分:2)
这可以通过Kafka 1.1.x完成。从文档中:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --delete --group my-group --group my-other-group
答案 4 :(得分:0)
你也可以在不删除整个消费者组的情况下重置单个主题的偏移量:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group --topic my-topic --reset-offsets --to-earliest --execute