web-dev-qa-db-fra.com

Quand / comment un sujet "marqué pour suppression" est-il finalement supprimé?

J'ai émis la commande pour supprimer un sujet:

./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic  vip_ips_alerts

Cela a semblé donner une réponse heureuse:

[2014-05-31 20:58:10,112] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)
Topic "vip_ips_alerts" queued for deletion.

Mais maintenant, 10 minutes plus tard, le sujet apparaît toujours dans la --list commande:

./bin/kafka-topics.sh --zookeeper localhost:2181 --list
vip_ips_alerts - marked for deletion

Alors qu'est-ce que cela signifie? Quand le sujet sera-t-il vraiment supprimé? Comment puis-je accélérer ce processus?

65
javadba

tl; dr Set delete.topic.enable = true dans config/server.properties de Kafka courtiers et ... soyez patient.

Cela se produit avec la dernière version de développement de Kafka .8.3-SNAPSHOT:

➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 2 --replication-factor 1
Created topic "my-topic".

➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic my-topic
Topic:my-topic  PartitionCount:2    ReplicationFactor:1 Configs:
    Topic: my-topic Partition: 0    Leader: 0   Replicas: 0 Isr: 0
    Topic: my-topic Partition: 1    Leader: 0   Replicas: 0 Isr: 0

➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic my-topic
Topic my-topic is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --list
➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗

Le but est d'avoir delete.topic.enable=true dans config/server.properties que vous utilisez pour démarrer un courtier Kafka.

➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ grep delete.topic.enable config/server.properties
delete.topic.enable=true

Vous pouvez également vous assurer que le paramètre est vrai dans le journal du courtier:

➜  kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-server-start.sh config/server.properties
[2015-07-24 22:33:26,184] INFO KafkaConfig values:
        ...
        delete.topic.enable = true
33
Jacek Laskowski

Dans mon cas où j'utilise Kafka 8.2.2, j'ai dû supprimer manuellement les entrées de ce qui suit -

  1. Supprimer le dossier de sujet de Kafka machine à courtier.
  2. Connectez-vous à zookeeper et -

    hbase zkcli
    rmr /brokers/topics/{topic_name}
    rmr /admin/delete_topics/{topic_name}
    
23
tesnik03

Tu peux le faire.

Sudo ./zookeeper-Shell.sh localhost: 2181 rmr/brokers/topics/your_topic

14
Anxo P

J'ai fait face au même problème et j'ai passé quelques jours à essayer de l'identifier. J'ai déclenché la commande pour supprimer les sujets, cependant les sujets étaient marqués pour suppression mais ils ne l'ont pas été.

  1. J'ai d'abord vérifié la configuration qui est définie correctement. Sous: server.properties

    delete.topic.enable = true pour tous les courtiers

  2. J'ai redémarré le courtier pour vérifier si les sujets ont été supprimés (non !!).
  3. Je ne vérifie aucune donnée sous/kafka/data folder.
  4. J'ai même envisagé l'option d'attendre que le temps de rétention soit dépassé.

Aucun n'a aidé. Je devais enfin me connecter à Zooker

./zkCli.sh # and delete the topics using 
rmr /brokers/topics/<<topic>> and rmr /admin/delete_topics/<<topic>>

N'oubliez pas de redémarrer kafka après cela. J'espère que cela résoudra votre problème.

10
jigar shah

La réponse correcte est en réalité la suivante. HOT off la liste de distribution de courrier électronique du groupe Kafka-user:

François Langelier *@gmail.com sur kafka.Apache.org 05:57 (vor 1 Stunde)

un utilisateur Le sujet de suppression ne fonctionne pas ATM

Je pense qu'il sera disponible dans la prochaine version https://issues.Apache.org/jira/browse/KAFKA-1397

4
javadba

Pour kafka version 0.10.0.0 il suffit d'activer la suppression du sujet en définissant:

delete.topic.enable

Le sujet est supprimé en quelques instants

kafka-topics --delete --zookeeper your-zk:2181 --topic yourTopicName

Vous pouvez confirmer qu'il est parti avec la commande suivante:

kafka-topics --describe --zookeeper your-zk:2181 --topic yourTopicName
3
m.a.tomsik

Vérifier le statut du sujet chez zookeeper

bin\windows>kafka-topics.bat --list --zookeeper localhost:2181
Output: topic shows marked for deletion

Paramètre delete.topic.enable = true dans server.properties n'était pas travailler aussi bien.

Solution: Vérifiez l’emplacement du répertoire de données de zookeeper dans le fichier zookeeper.properties. c'était dataDir =/tmp/zookeeper .
Le problème a été résolu après la mise à jour de "dataDir" vers un nouvel emplacement.

dataDir=zk-temp
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
2
Debabrata

Mon problème était quelque chose de similaire. J'ai supprimé un sujet et cela me donnait le même message lorsque je listais tous les sujets.

J'ai fait tomber le gardien de zoo et le courtier. définir le delete.topic.enable = true dans mon fichier de configuration de courtier a commencé zookeeper et le boker

Le sujet avait disparu ... grâce à Jacek Laskowski

2
Amar Dev

La suppression m'est arrivée presque immédiatement (v 0.9). Je crois que cela devrait être la même chose pour vous.

Une fois marqué, la suppression sera déclenchée sur le nœud kafka qui est le responsable de la partition de sujet. Il convient de rappeler que le responsable de la partition de sujet doit être configuré correctement (en termes d'écouteurs), sinon, il ne recevra pas l'instruction de supprimer les journaux.

Mes rubriques "marquées pour suppression" étaient bloquées à cet état jusqu'à ce que je corrige les propriétés de mon serveur et que je redémarre le nœud respectif.

1
Francis Leung

Pour kafka version 0.10.0.0 il suffit d'activer la suppression du sujet en définissant:

delete.topic.enable

Le sujet est supprimé en quelques instants. Aucun redémarrage nécessaire.

kafka-topics --delete --zookeeper your-zk:2181 --topic yourTopicName

Vous pouvez confirmer qu'il est parti avec la commande:

kafka-topics --describe --zookeeper your-zk:2181 --topic yourTopicName

1
m.a.tomsik

Nous avons eu ce problème lors de la suppression de sujets. Les rubriques ont été créées alors que delete.topic.enable = true n’était pas défini. Nous avons défini cela dans la configuration, redémarré kafka pour appliquer la nouvelle configuration. Supprimé les sujets et vu le "marqué pour suppression". Nous avons ensuite redémarré kafka à nouveau. Au bout de 40 minutes, tous les sujets avaient été supprimés (9 sujets avec des partitions totales par milliers).

1
MattLovesJam