Elimina argomento in Kafka 0.8.1.1

Devo cancellare il topic test in Apache Kafka 0.8.1.1.

Come express nella documentazione qui , ho eseguito:

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

Tuttavia, questo risulta nel seguente messaggio:

 Command must include exactly one action: --list, --describe, --create or --alter 

Come posso cancellare questo argomento?

L’eliminazione dell’argomento non funziona sempre in 0.8.1.1

La cancellazione dovrebbe funzionare nella prossima versione, 0.8.2

 kafka-topics.sh --delete --zookeeper localhost:2181 --topic your_topic_name Topic your_topic_name is marked for deletion. Note: This will have no impact if delete.topic.enable is not set to true. 

È ansible cancellare un argomento?

Jira KAFKA-1397

Sembra che il comando di cancellazione non sia stato ufficialmente documentato in Kafka 0.8.1.x a causa di un bug noto ( https://issues.apache.org/jira/browse/KAFKA-1397 ).

Tuttavia, il comando è stato ancora spedito nel codice e può essere eseguito come:

 bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test 

Nel frattempo, il bug è stato risolto e il comando di cancellazione è ora ufficialmente disponibile da Kafka 0.8.2.0 come:

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

Aggiungi sotto la riga in $ {kafka_home} /config/server.properties

 delete.topic.enable=true 

Riavvia il server kafka con una nuova configurazione:

 ${kafka_home}/bin/kafka-server-start.sh ~/kafka/config/server.properties 

Elimina gli argomenti che desideri:

 ${kafka_home}/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic daemon12 

Andrea ha ragione. possiamo farlo usando la linea di comando.

E possiamo ancora programmarlo, da

 ZkClient zkClient = new ZkClient("localhost:2181", 10000); zkClient.deleteRecursive(ZkUtils.getTopicPath("test2")); 

In realtà non ti consiglio di eliminare l’argomento su Kafka 0.8.1.1. Posso cancellare questo argomento con questo metodo, ma se controlli registro per zookeeper, la cancellazione lo rovinerà.

È ansible eliminare un argomento specifico di kafka (esempio: test ) dal comando della shell di zookeeper-shell.sh ( zookeeper-shell.sh ). Utilizzare il comando seguente per eliminare l’argomento

 rmr {path of the topic} 

esempio:

 rmr /brokers/topics/test 

Passos per eliminare 1 o più argomenti in Kafka

Per eliminare gli argomenti in kafka è necessario abilitare l’opzione di eliminazione nel server Kafka.

 1. Go to {kafka_home}/config/server.properties 2. Uncomment delete.topic.enable=true 

Elimina un argomento in Kafka immetti il ​​seguente comando

kafka-topics.sh –delete –zookeeper localhost: 2181 –topic

Eliminare più di un argomento da kafka

(valido a scopo di test, in cui ho creato più argomenti e ho dovuto eliminarli per diversi scenari)

  1. Arresta il server Kafka e il guardiano dello zoo
  2. vai alla cartella / tmp dove sono memorizzati i log ed elimina manualmente la cartella kafkalogs e zookeeper
  3. Riavvia il server zookeeper e il server kafka e prova ad elencare argomenti,

bin / kafka-topics.sh –list –zookeeper localhost: 2181

se nessun argomento è elencato, tutti gli argomenti sono stati cancellati correttamente. Se gli argomenti sono elencati, l’eliminazione non ha avuto esito positivo. Prova di nuovo i passaggi precedenti o riavvia il computer.

Questa procedura eliminerà tutti gli argomenti e i dati

  • Arresta il server Kafka e il server Zookeeper
  • Rimuovere le directory di dati tmp di entrambi i servizi, per impostazione predefinita sono C: / tmp / kafka-logs e C: / tmp / zookeeper.
  • quindi avvia Zookeeper-server e Kafka-server

Il comando:

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

sfortunatamente segna solo un argomento per la cancellazione.

La cancellazione non avviene

Questo crea problemi, mentre testare qualsiasi script, che prepara la configurazione di Kafka.

Fili collegati:

  • Purge Kafka Queue
  • C’è un modo per eliminare tutti i dati da un argomento o eliminare l’argomento prima di ogni esecuzione?

Aggiungendo alle risposte di cui sopra è necessario eliminare i metadati associati a quell’argomento nel percorso offset consumatore zookeeper.

bin/zookeeper-shell.sh zookeeperhost:port

rmr /consumers//offsets/

In caso contrario, il ritardo sarà negativo negli strumenti di monitoraggio kafka basati su zookeeper.

Come menzionato nel doc qui

L’opzione di eliminazione dell’argomento è disabilitata per impostazione predefinita. Per abilitarlo impostare la configurazione del server delete.topic.enable = true Kafka attualmente non supporta la riduzione del numero di partizioni per un argomento o la modifica del fattore di replicazione.

Assicurati di delete.topic.enable = true

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

Se hai problemi nell’eliminare gli argomenti, prova a eliminare l’argomento usando:

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

comando. Quindi, per verificare il processo di eliminazione, vai alla directory kafka logs che normalmente si trova in /tmp/kafka-logs/ , quindi elimina il file your_topic_name tramite il comando rm -rf your_topic_name .

Ricorda di monitorare l’intero processo tramite uno strumento di gestione di kafka come Kafka Tool .

La suddetta procedura rimuoverà gli argomenti senza riavvio del server kafka.