最近工作中经常遇到要手动或者服务器内存不足 自动关掉spark-streaming读取kafka数据的情况 ,本身只有一个节点,宕掉后会导致kafka当前topic异常,读取与写入都获取不到head,所以要删除topic来解决该问题,实际生产中不推介删除topic的策略解决该问题,是否可以通过手动设置head来解决还没有研究。

要完全删除该topic需要删除干净许多地方 然后重启kafka的每个节点,不然都可能导致 之前的删除操作还要重新再来一遍。

另外 我在server.properties中配置了delete.topic.enable=true 通过kafka删除 效果显示的只是mark for deletion 并没有删除

1. 删除topic日志文件 kafka默认的日志目录为/tmp/kafka-logs/ (在server.properties中修改)需要删除kafka集群中每个节点中的该topic日志

2. 连接zookeeper 删除broker 

./zkCli.sh   --启动zookeeper

ls /brokers/topic   --查看topic列表

rmr /brokers/topic/topicname --删除该topic 删除失败可能的原因是里面有子目录  不太清楚递归删除的命令是啥。

ls /admin/delete_topics  --查看准备删除的topic列表

rmr /admin/delete_topics/topicname --也要删除

ls /config/topics   --查看topic配置文件的列表

rmr /config/topics/topicname --删除

exit

3.重启kafka的每个节点

posted on 2017-06-06 18:11  找不到句点的诗篇  阅读(817)  评论(0)    收藏  举报