2015-11-05 29 views
31

Ho bisogno di eliminare un argomento in kafka-0.8.2.2.3. Ho usato il seguente comando per la cancellazione del tema:Come eliminare un argomento in apache kafka

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

comando eseguito con successo ma quando ho eseguito un comando per elencare gli argomenti, ho potuto vedere che l'argomento è ancora lì e si vede contrassegnato per l'eliminazione .

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

E quando creo il tema DummyTopic emette l'eccezione, Il tema esiste già, qui di seguito è l'analisi dello stack:

Error while executing topic command Topic "DummyTopic" already exists. 
kafka.common.TopicExistsException: Topic "DummyTopic" already exists. 
    at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:248) 
    at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:233) 
    at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:92) 
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:54) 
    at kafka.admin.TopicCommand.main(TopicCommand.scala) 

Si prega di farmi sapere come posso cancellare questo argomento.

+3

Apache Kafka non cancella un argomento contrassegnato per cancellazione se quell'argomento ha ancora produttori produttori, o consumatori che ne consumano ancora, o messaggi lasciati in coda. Un modo per provare a forzarlo è riavviare Kafka. Oppure, se ciò non funziona, vai sotto la cappa e cancella la directory che è il tuo nome argomento in/var/local/kafka/data e poi riavvia Kafka quindi ri-emetti il ​​comando delete. Mi auguro che Apache Kafka abbia un'opzione di "nuke the bleeping topic" in modo che lo sviluppatore possa impartire il comando: "Davvero, non c'è niente da fare, questa volta bombardando l'argomento bontà no sass please". –

+1

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

risposta

38

La cancellazione di un argomento è stata supportata dalla versione 0.8.2.x. Devi abilitare la cancellazione dell'argomento (impostando delete.topic.enable su true) prima su tutti i broker.

Seguire questo processo passo dopo passo per l'eliminazione manuale dei topics

  1. arresto Kafka server di
  2. Eliminare la directory argomento con rm -rf comando
  3. Connect to Zookeeper esempio: zookeeper-shell.sh host:port

  4. ls /brokers/topics

  5. rimuovere la cartella argomento dalla ZooKeeper utilizzando rmr /brokers/topics/yourtopic
  6. Restart Kafka server di
  7. Conferma se è stato eliminato o non utilizzando questo comando kafka-topics.sh --list --zookeeper host:port
+0

ok ... grazie ... proverò a riavviare il cluster kafka .. :) –

+0

Il collegamento è interrotto! – Rubbal

+0

Aspettando ciò, ho riassunto i concetti chiave per rendere la mia risposta autosufficiente –

Problemi correlati