问题描述:
我之前使用kafka的命令删除了改topic:
./kafka-topics.sh --delete --zookeeper 【zookeeper server】 --topic 【topic name】
kafka是启用了自动创建topic功能的(之气那测试过可以使用),发布消息到该topic上,此时报错,感觉没删除干净,只是标记为删除状态。
抛出异常信息为:
WARN clients.NetworkClient: Error while fetching metadata with correlation id 1 : {my-topic=LEADER_NOT_AVAILABLE}
解决方法:
kafka在zookeeper上存储结构:
启动zookeeper的客户工具,删除zookeeper根目录下的brokers目录下的topic目录下的所有东西(这样会把之前建的所有topic都删除)
1)jps查看zk的进程
30837 QuorumPeerMain
2)查找zk的运行目录:
ps -ef|grep QuorumPeerMain
3)进入zk的安装目录找打bin/zkClient.sh,并运行它:
4)查看/brokers/topics和/admin/delete_topics下面有什么东西
ls /brokers/topics
ls /admin/delete_topics
此时发现删除的topic在zk的/brokers/topics节点下依然存在。
5)强制删除该topic节点。
rmr /brokers/topics/my-topic
rmr /admin/delete_topics/my-topic
验证程序可以正常运行。
同事说造成整个问题的原因,有可能是默认kafka topic的partition不是brokers的倍数的问题,但暂时未验证。