kafka如何删除没有领导者的主题

时间:2016-07-01 07:24:18

标签: apache-kafka

我无法删除/重新分配/对没有领导者的主题进行任何更改

  

重现:

     
      
  1. 使用ReplicationFactor = 1
  2. 创建主题   
  3. 关闭唯一一个经纪人主持人
  4.   
  5. 使用kafka-topic --delete删除主题
  6.   
  7. 删除过程永远不会结束(我等了6个多月,而且开始受伤了)
  8.   

描述主题

Topic:topic_73  PartitionCount:1    ReplicationFactor:1
Configs:unclean.leader.election.enable=true
Topic: topic_73 Partition: 0    Leader: -1  Replicas: 755   Isr:

经纪人755永远不会回去 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此脚本清除zookeeper中的元数据,并直接删除kafka日志。

./clear.sh /path-to-kafka-logs sampletopic /path-to-kafka-bin-dir

clear.sh内容如下:

#!/bin/bash
# this script is for the situation that leader is set to -1 and there is no ISR
ZK_HOST=`hostname`
ROOT_DIR=$1
TOPIC=$2
KAFKA_LOG_DIR=$3

# make sure kafka service is stopped while running this
rm -rf ${KAFKA_LOG_DIR}/${TOPIC}*
${ROOT_DIR}/kafka/bin/kafka-topics.sh --zookeeper ${ZK_HOST}:2181 --topic ${TOPIC} --delete
${ROOT_DIR}/kafka/bin/zookeeper-shell.sh ${ZK_HOST}:2181 rmr /brokers/topics/${TOPIC}
${ROOT_DIR}/kafka/bin/zookeeper-shell.sh ${ZK_HOST}:2181 rmr /admin/delete_topics/${TOPIC}

在使用之前确保chmod +x clear.sh