一些说明

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-checkpointreplication-offset-checkpoint 文件
删除其中相关的partition信息,并且把文件中第二行的partition总数减少。

3.重启服务
任务完成,重新启动zk和broker

$ZOOKEEPER_HOME/bin/zkServer.sh start
$KAFKA_HOME/bin/kafka-server-start.sh
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐