kafka0.8.2以下版本删除topic
一些说明
kafka0.8.2及以上版本已经支持delete命令删除topic,可是之前的版本要是想删除topic还是要费一番手脚,绝对是个体力活。。。
该方法最好仅在线下开发环境中使用,毕竟要重启zookeeper和broker
步骤
1.在zk中删除topic信息(test)
$KAFKA_HOME/bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand
--zookeeper zk1:2181,zk2:2181,zk3:2181
--topic test
关闭zookeeper和broker
$ZOOKEEPER_HOME/bin/zkServer.sh stop
$KAFKA_HOME/bin/kafka-server-stop.sh
2.删除topic消息
进入kafka指定的log.dir位置,删除所有test相关的partition(如果你的partition较多并且分布到各个broker上,过程还是很辛苦的。)
同时修改日志目录下的 recovery-point-offset-checkpoint
和 replication-offset-checkpoint
文件
删除其中相关的partition信息,并且把文件中第二行的partition总数减少。
3.重启服务
任务完成,重新启动zk和broker
$ZOOKEEPER_HOME/bin/zkServer.sh start
$KAFKA_HOME/bin/kafka-server-start.sh