一、前言

严格来讲,kafka删除topic并不是很难,但是步骤比较麻烦,稍有不慎就会失败。本文就kafka删除topic的步骤做出详细解析。

二、详细步骤

①停止kafka服务

停止kafka的所有的消费者和生产者,关闭kafka,防止在删除topic之后,程序发现topic不存在而自动创建topic

②修改配置文件

在kafka安装目录的conf目录下,修改server.properties文件,在文件的末尾添加如下配置:

[root@hadoop01 config]# pwd
/home/software/kafka/config
[root@hadoop01 config]# vim server.properties
[root@hadoop01 config]#
auto.create.topics.enable = false
delete.topic.enable=true

这一步配置很重要。

auto.create.topics.enable = false。这个配置的默认值为true,此时topic不存在时会自动创建,这样会给删除topic带来意想不到的问题。

delete.topic.enable=true。不设置这个参数,则topic无法删除。

kafka集群中所有的机器都要执行这一步操作。

③删除topic

进入kafka安装目录的bin目录,执行指令:./kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】

[root@hadoop01 bin]# pwd
/home/software/kafka/bin
[root@hadoop01 bin]# ./kafka-topics.sh --delete --zookeeper hadoop01:2181 --topic park
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/software/hbase/lib/phoenix-4.8.1-HBase-0.98-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/software/kafka/libs/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Topic park is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
[root@hadoop01 bin]#

注意,这一步执行完毕,topic可能并没有真正删除,只是被标记为删除:“Topic park is marked for deletion.”

④删除kafka存储目录

topic相关的存储目录为在server.properties文件log.dirs配置的目录(本案例中为:/home/software/kafka/tmp)

[root@hadoop01 tmp]# pwd
/home/software/kafka/tmp

[root@hadoop01 tmp]# ll
total 4
drwxr-xr-x 26 root root 4096 Dec 11 17:08 kafka-logs

[root@hadoop01 tmp]# cd kafka-logs/
[root@hadoop01 kafka-logs]# ll
total 112
-rw-r--r-- 1 root root    0 Nov 28 08:55 cleaner-offset-checkpoint
drwxr-xr-x 2 root root 4096 Dec 11 09:02 __consumer_offsets-5
drwxr-xr-x 2 root root 4096 Dec 11 09:02 __consumer_offsets-8
drwxr-xr-x 2 root root 4096 Dec 11 16:13 park
-rw-r--r-- 1 root root    4 Dec 11 17:08 log-start-offset-checkpoint
-rw-r--r-- 1 root root   54 Nov 28 08:55 meta.properties
-rw-r--r-- 1 root root  548 Dec 11 17:08 recovery-point-offset-checkpoint
-rw-r--r-- 1 root root  553 Dec 11 17:09 replication-offset-checkpoint
[root@hadoop01 kafka-logs]#

删除跟topic相关的目录

[root@hadoop01 kafka-logs]# rm -rf park

注意:kafka集群中的每台机器都需要执行这一步的操作

⑤删除zookeeper服务器上的topic

在其中一台zookeeper服务器上,进入zookeeper安装目录的bin目录,登录到shell

[root@hadoop01 bin]# pwd
/home/software/zookeeper/bin

[root@hadoop01 bin]# ./zkCli.sh -server hadoop01:2181
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/software/zookeeper/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/software/hbase/lib/phoenix-4.8.1-HBase-0.98-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Connecting to hadoop01:2181
2018-12-11 17:16:40,319 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.7-1713338, built on 11/09/2015 04:32 GMT
2018-12-11 17:16:40,323 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=hadoop01
2018-12-11 17:16:40,323 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_131
2018-12-11 17:16:40,328 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/home/software/jdk1.8/jre
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/home/software/zookeeper/bin/../build/classes:/home/software/zookeeper/bin/../build/lib/*.jar:/home/software/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/software/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/software/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/home/software/zookeeper/bin/../lib/log4j-1.2.16.jar:/home/software/zookeeper/bin/../lib/jline-0.9.94.jar:/home/software/zookeeper/bin/../zookeeper-3.4.7.jar:/home/software/zookeeper/bin/../src/java/lib/*.jar:/home/software/zookeeper/bin/../conf:.:/home/software/jdk1.8/lib/dt.jar:/home/software/jdk1.8/lib/tools.jar:/home/software/hbase/lib/phoenix-4.8.1-HBase-0.98-client.jar:/home/software/hbase/lib/phoenix-4.8.1-HBase-0.98-server.jar
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2018-12-11 17:16:40,330 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2018-12-11 17:16:40,331 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-431.el6.x86_64
2018-12-11 17:16:40,332 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2018-12-11 17:16:40,332 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2018-12-11 17:16:40,332 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/home/software/zookeeper/bin
2018-12-11 17:16:40,335 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=hadoop01:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@2cdf8d8a
Welcome to ZooKeeper!
2018-12-11 17:16:40,387 [myid:] - INFO  [main-SendThread(hadoop01:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server hadoop01/192.168.205.141:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-12-11 17:16:40,537 [myid:] - INFO  [main-SendThread(hadoop01:2181):ClientCnxn$SendThread@876] - Socket connection established to hadoop01/192.168.205.141:2181, initiating session
2018-12-11 17:16:40,556 [myid:] - INFO  [main-SendThread(hadoop01:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server hadoop01/192.168.205.141:2181, sessionid = 0x1679abd61be0004, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: hadoop01:2181(CONNECTED) 0]

查看所有的topic

[zk: hadoop01:2181(CONNECTED) 0] ls /brokers/topics
[park]
[zk: hadoop01:2181(CONNECTED) 1]

执行删除指令,删除topic

[zk: hadoop01:2181(CONNECTED) 1] rmr /brokers/topics/park

此时,topic被彻底删除。

如果topic还存在,或者仍然被标记为“Topic park is marked for deletion.”,则通过指令ls /admin/delete_topics,找到需要删除的topic,然后执行指令rmr /admin/delete_topics/【topic name】

至此,topic被彻底删除!

Kafka彻底删除topic详解相关推荐

  1. Kafka卡夫卡详解

    Kafka卡夫卡详解 Kafka设计方式 Topics Producers Consumers 参考:https://www.cnblogs.com/shijiaoyun/p/4860734.html ...

  2. python使用kafka原理详解_Python操作Kafka原理及使用详解

    Python操作Kafka原理及使用详解 一.什么是Kafka Kafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish或者subscribe消息,分布式提供了容错性,并发处理 ...

  3. linux如何查看kafka消息队列,kafka以及消息队列详解

    kafka以及消息队列详解 Kafka 是LinkedIn 开发的一个高性能.分布式的消息系统. 用途:广泛用于日志收集.流式数据处理.在线和离线消息分发等场景. 1. Kafka 将消息流按Topi ...

  4. java list 移除_java 中List删除实例详解

    java 中List删除实例详解 1.循环删除List中的元素 public static void main(String[] args) { List t=new ArrayList(); for ...

  5. 目录树 删除 数据结构_数据结构:B树和B+树的插入、删除图文详解

    B树 1.1B树的定义 B树也称B-树,它是一颗多路平衡查找树.我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数.当m取2时,就是我们常见的二叉搜索树. ...

  6. 数据结构:B树和B+树的插入、删除图文详解

    目录 B树 1.1B树的定义 1.2B树的插入操作 1.3B树的删除操作 B+树 2.1 B+树的定义 2.2 B+树的插入操作 2.3 B+树的删除操作 B树 1.1B树的定义 B树也称B-树,它是 ...

  7. 删除oracle数据库的三种方法,oracle数据库的删除方法详解

    oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...

  8. linux rm 删除文件,linux rm命令删除文件详解

    linux rm命令删除文件详解 linux中rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉.对于链接文件,只是删除整个链接文件,而原有文件保持 ...

  9. linux和win双系统删除,双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个!...

    原标题:双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个! 现在的电脑配置都十分不错,有很多电脑都可以支持双系统.你可以将双系统可以分别安装在不同的分区内,在使用的时候,根 ...

  10. AVL树的插入与删除(详解)

    AVL树的插入与删除(详解) 平衡二叉树的定义就不在这里赘述了,平衡二叉树的插入与删除都是基于平衡二叉树的查找进行的.平衡二叉树的查找和二叉树的查找又是一样的. 插入的话,我们从平衡二叉树的根结点出发 ...

最新文章

  1. 6次课(相对和绝对路径、cd命令、创建和删除目录mkdir/rmdir、rm命令)
  2. PetShop 4.0讨论专贴(QA)
  3. 根据百度API获得经纬度,然后根据经纬度在获得城市信息
  4. Python中的正则表达式(分组)
  5. jquery获取当前的节点
  6. windows 自动备份mysql方案
  7. 翻译「C++ Rvalue References Explained」C++右值引用详解 Part3:右值引用
  8. 『001』如何在自己的网页里引入一个聊天机器人(。・∀・)ノ
  9. 少儿计算机基础知识,儿童计算机基本操作
  10. 如何将密切好友的微信聊天记录恢复到自己的微信中
  11. SQLITE3 使用总结
  12. Keep It Simple and Stupid是什么意思
  13. 0825torch基础入门操作
  14. 简单的言语介绍一下什么是程序员
  15. 黑镜成真!3分钟看懂马斯克直播脑机接口,芯片植入猪脑,活猪演示
  16. java中宏定义,宏定义的使用
  17. 机械革命code01卡顿
  18. Source Insight 4.0 代码自动排版 2019
  19. python处理手写签名为电子签名
  20. 原码 反码 补码三者之间的关系

热门文章

  1. 健康体适能答案2021(持续更新)
  2. 服务器操作系统有哪些?
  3. win7 c盘空间不足怎么扩大
  4. 无线路由器服务器连接线,无线路由器连接有线路由器怎么设置?
  5. 3. pandas基础
  6. o2o、c2c、b2c、b2b、b2b2c都是什么?
  7. SaaS产品移动化,你想好这3点了吗
  8. 临危受命 青力支持:“信豫链”及时上线 保障河南中小企业带“资”复工
  9. 了解黑客经常使用哪些工具
  10. throw e 和 return 的浅显理解