Commandes Kafka pour l'administration et la gestion des données

Vérifier l'identifiant des brokers

Pour récupérer les ID des brokers dans un cluster Kafka, exécutez cette commande :

kafka-broker-api-versions.sh --bootstrap-server kafka-broker:9092 | grep "id"

Lister et décrire les topics

Pour afficher tous les topics disponibles :

kafka-topics.sh --bootstrap-server kafka-broker:9092 --list

Pour obtenir des détails sur un topic spécifique :

kafka-topics.sh --bootstrap-server kafka-broker:9092 --describe --topic exemple_topic

Créer un nouveau topic

Création simple avec un nombre de partitions défini :

kafka-topics.sh --bootstrap-server kafka-node:9092 --create --topic nouveau_sujet --partitions 1

Création avec configuration avancée, comme la rétention et le facteur de réplication :

kafka-topics.sh --bootstrap-server kafka-node:9092 --create --topic sujet_test --config retention.ms=7200000 --replication-factor 3 --partitions 5

Calculer la taille d'un topic

Utilisez l'outil jq pour analyser les logs des répertoires. Assurez-vous d'avoir jq installé, par exemple depuis les releases officielles.

Exportez les informations des logs pour un broker et un topic donnés :

kafka-log-dirs.sh --bootstrap-server kafka-broker:9092 --describe --broker-list 1 --topic-list exemple_topic > sortie.json

Ensuite, extrayez et calculez la taille totale avec jq et awk :

jq .brokers[0].logDirs[].partitions[].size sortie.json | awk '{sum+=$1}END{print sum/1024/1024/1024}'

Gérer les groupes de consommateurs

Lister tous les groupes de consommateurs :

kafka-consumer-groups.sh --bootstrap-server kafka-node:9092 --list

Afficher les détails d'un groupe spécifique, en utilisant un fichier de configuraton si nécessaire :

kafka-consumer-groups.sh --command-config /chemin/vers/kafka_client_jaas.conf --bootstrap-server kafka-node:9092 --describe --group mon_groupe

Voir l'état et les détails de tous les groupes :

kafka-consumer-groups.sh --bootstrap-server kafka-node:9092 --describe --all-groups

Afficher les membres d'un groupe :

kafka-consumer-groups.sh --describe --members --group mon_groupe --bootstrap-server kafka-node:9092

Réinitialiser les offsets des consommateurs

La réinitialisation des offsets peut redistribuer les partitions aux consommateurs. Options cournates :

  • --to-earliest : déplace l'offset au début
  • --to-latest : déplace l'offset à la fin
  • --to-offset NUM : définit un offset spécifique
  • --shift-by NUM : recule d'un certain nombre d'offsets
  • --by-duration : recule en fonction du temps

Exemple pour réinitialiser à l'offset le plus récent :

kafka-consumer-groups.sh --bootstrap-server kafka-node:9092 --group mon_groupe --topic sujet_cible --reset-offsets --to-latest --execute

Les colonnes clés dans les rapports sont :

  • CURRENT-OFFSET : offset actuel du consommateur
  • LOG-END-OFFSET : dernier offset disponible dans la partition
  • LAG : différence entre les deux, indiquant l'arriéré

Supprimer des topics et leurs données

Supprimer un topic :

kafka-topics.sh --bootstrap-server kafka-node:9092 --delete --topic topic_a_supprimer

Pour supprimer immédiatement les données d'un topic, ajustez la politique de nettoyage via ZooKeeper :

kafka-configs.sh --zookeeper zookeeper:2181 --alter --entity-name mon_topic --entity-type topics --add-config cleanup.policy=delete

Configurations dynamiques

Paramètres globaux dans server.properties :

log.retention.hours=48
log.cleanup.policy=delete

Configurer la rétention pour un topic spécifique, par exemple à 2 jours :

kafka-configs.sh --zookeeper zookeeper:2181 --alter --entity-name mon_topic --entity-type topics --add-config retention.ms=172800000

Pour vérifier la configuration :

kafka-configs.sh --zookeeper zookeeper:2181 --describe --entity-name mon_topic --entity-type topics

Étiquettes: Apache Kafka Kafka CLI Gestion des topics Groupes de consommateurs Réinitialisation des offsets

Publié le 22 juin à 23h33