一、前言
严格来讲,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详解相关推荐
- Kafka卡夫卡详解
Kafka卡夫卡详解 Kafka设计方式 Topics Producers Consumers 参考:https://www.cnblogs.com/shijiaoyun/p/4860734.html ...
- python使用kafka原理详解_Python操作Kafka原理及使用详解
Python操作Kafka原理及使用详解 一.什么是Kafka Kafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish或者subscribe消息,分布式提供了容错性,并发处理 ...
- linux如何查看kafka消息队列,kafka以及消息队列详解
kafka以及消息队列详解 Kafka 是LinkedIn 开发的一个高性能.分布式的消息系统. 用途:广泛用于日志收集.流式数据处理.在线和离线消息分发等场景. 1. Kafka 将消息流按Topi ...
- java list 移除_java 中List删除实例详解
java 中List删除实例详解 1.循环删除List中的元素 public static void main(String[] args) { List t=new ArrayList(); for ...
- 目录树 删除 数据结构_数据结构:B树和B+树的插入、删除图文详解
B树 1.1B树的定义 B树也称B-树,它是一颗多路平衡查找树.我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数.当m取2时,就是我们常见的二叉搜索树. ...
- 数据结构:B树和B+树的插入、删除图文详解
目录 B树 1.1B树的定义 1.2B树的插入操作 1.3B树的删除操作 B+树 2.1 B+树的定义 2.2 B+树的插入操作 2.3 B+树的删除操作 B树 1.1B树的定义 B树也称B-树,它是 ...
- 删除oracle数据库的三种方法,oracle数据库的删除方法详解
oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...
- linux rm 删除文件,linux rm命令删除文件详解
linux rm命令删除文件详解 linux中rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉.对于链接文件,只是删除整个链接文件,而原有文件保持 ...
- linux和win双系统删除,双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个!...
原标题:双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个! 现在的电脑配置都十分不错,有很多电脑都可以支持双系统.你可以将双系统可以分别安装在不同的分区内,在使用的时候,根 ...
- AVL树的插入与删除(详解)
AVL树的插入与删除(详解) 平衡二叉树的定义就不在这里赘述了,平衡二叉树的插入与删除都是基于平衡二叉树的查找进行的.平衡二叉树的查找和二叉树的查找又是一样的. 插入的话,我们从平衡二叉树的根结点出发 ...
最新文章
- 6次课(相对和绝对路径、cd命令、创建和删除目录mkdir/rmdir、rm命令)
- PetShop 4.0讨论专贴(QA)
- 根据百度API获得经纬度,然后根据经纬度在获得城市信息
- Python中的正则表达式(分组)
- jquery获取当前的节点
- windows 自动备份mysql方案
- 翻译「C++ Rvalue References Explained」C++右值引用详解 Part3:右值引用
- 『001』如何在自己的网页里引入一个聊天机器人(。・∀・)ノ
- 少儿计算机基础知识,儿童计算机基本操作
- 如何将密切好友的微信聊天记录恢复到自己的微信中
- SQLITE3 使用总结
- Keep It Simple and Stupid是什么意思
- 0825torch基础入门操作
- 简单的言语介绍一下什么是程序员
- 黑镜成真!3分钟看懂马斯克直播脑机接口,芯片植入猪脑,活猪演示
- java中宏定义,宏定义的使用
- 机械革命code01卡顿
- Source Insight 4.0 代码自动排版 2019
- python处理手写签名为电子签名
- 原码 反码 补码三者之间的关系
热门文章
- 健康体适能答案2021(持续更新)
- 服务器操作系统有哪些?
- win7 c盘空间不足怎么扩大
- 无线路由器服务器连接线,无线路由器连接有线路由器怎么设置?
- 3. pandas基础
- o2o、c2c、b2c、b2b、b2b2c都是什么?
- SaaS产品移动化,你想好这3点了吗
- 临危受命 青力支持:“信豫链”及时上线 保障河南中小企业带“资”复工
- 了解黑客经常使用哪些工具
- throw e 和 return 的浅显理解