web-dev-qa-db-fra.com

kafka 0,11 réinitialiser le décalage pour le groupe de consommateurs par --to-datetime

Je veux réinitialiser le décalage du groupe de consommateurs kafka par horodatage. Mais lorsque j'utilise la commande suivante:

./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

Je reçois le message d'erreur suivant:

Remarque: Cela n'affichera que des informations sur les consommateurs qui utilisent l'API consommateur Java (consommateurs non basés sur ZooKeeper).

comment réinitialiser le décalage en fonction du temps

12
DHRUV BANSAL

Invoquer

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092
--group test-group --reset-offsets --all-topics --to-datetime 2017-08-04T00:00:00.000

peut réinitialiser les décalages aux plus anciens après l'heure donnée. Le format Datetime est yyyy-MM-ddTHH:mm:ss.xxx, 2017-08-04T00: 00: 00.000 par exemple.

Vous pouvez également réinitialiser les décalages par durée. Voir un exemple ci-dessous:

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--group test-group --reset-offsets --all-topics --by-duration PT0H30M0S

--by-duration réinitialise les décalages pour les compenser par la durée par rapport à l'horodatage actuel. Format: "PnDTnHnMnS".

7
amethystic

Ce n'est pas une erreur, mais juste un avertissement - car vous avez spécifié --bootstrap-server alors les modifications n'affecteront que les consommateurs implémentés à l'aide de la nouvelle API Java API. Si vous avez des consommateurs créés à l'aide d'autres API, vous devez spécifier --zookeeper option à la place.

3
Alex Ott

Ancien thread, mais ce lien est utile si vous voulez jouer avec les décalages kafka.

https://Gist.github.com/marwei/cd40657c481f94ebe273ecc16601674b#file-how_to_reset_kafka_consumer_group_offset-md

Surligner:

Kafka 0.11.0.0 (Confluent 3.3.0) a ajouté la prise en charge de la manipulation des décalages pour un groupe de consommateurs via cli kafka-consumer-groups commande.

  1. Énumérez les sujets auxquels le groupe est abonné bash kafka-consumer-groups --bootstrap-server <kafkahost:port> --group <group_id> --describe Notez les valeurs sous "CURRENT-OFFSET" et "LOG-END-OFFSET". "CURRENT-OFFSET" est le décalage où se trouve actuellement ce groupe de consommateurs dans chacune des partitions.

  2. Réinitialiser le décalage client pour un sujet (aperçu) bash kafka-consumer-groups --bootstrap-server <kafkahost:port> --group <group_id> --topic <topic_name> --reset-offsets --to-earliest Ceci imprimera le résultat attendu de la réinitialisation, mais ne l'exécutera pas réellement.

  3. Réinitialiser le décalage du consommateur pour un sujet (exécuter) bash kafka-consumer-groups --bootstrap-server <kafkahost:port> --group <group_id> --topic <topic_name> --reset-offsets --to-earliest --execute Ceci exécutera la réinitialisation et réinitialisera le décalage du groupe de consommateurs pour le sujet spécifié à 0.

  4. Répétez 1 pour vérifier si la réinitialisation a réussi

Remarque

  • Le groupe de consommateurs ne doit avoir aucune instance en cours d'exécution lors de la réinitialisation. Sinon, la réinitialisation sera rejetée.
  • Il existe de nombreuses autres options de réinitialisation, exécutez kafka-consumer-groups pour plus de détails

    • --shift-by
    • --à-courant
    • --à la dernière
    • --pour compenser
    • - à date
    • --par durée

La commande fournit également une option pour réinitialiser les décalages pour tous les sujets auxquels le groupe de consommateurs est abonné: --all-topics

2
Vaibhav Jain