前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kafka如何彻底删除topic及数据

kafka如何彻底删除topic及数据

原创
作者头像
mikealzhou
修改于 2018-05-27 13:26:14
修改于 2018-05-27 13:26:14
21K13
举报
文章被收录于专栏:大数据平台TBDS大数据平台TBDS

前言:

删除kafka topic及其数据,严格来说并不是很难的操作。但是,往往给kafka 使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafka topic的应用场景,总结一套删除kafka topic的标准操作方法。

step1:

如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费程序需要停止。

因为如果有程序正在生产或者消费该topic,则该topic的offset信息一致会在broker更新。调用kafka delete命令则无法删除该topic。

同时,需要设置 auto.create.topics.enable = false,默认设置为true。如果设置为true,则produce或者fetch 不存在的topic也会自动创建这个topic。这样会给删除topic带来很多意向不到的问题。

所以,这一步很重要,必须设置auto.create.topics.enable = false,并认真把生产和消费程序彻底全部停止。

step2:

server.properties 设置 delete.topic.enable=true

如果没有设置 delete.topic.enable=true,则调用kafka 的delete命令无法真正将topic删除,而是显示(marked for deletion)

step3:

调用命令删除topic:

./bin/kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】

step4:

删除kafka存储目录(server.properties文件log.dirs配置,默认为"/data/kafka-logs")相关topic的数据目录。

注意:如果kafka 有多个 broker,且每个broker 配置了多个数据盘(比如 /data/kafka-logs,/data1/kafka-logs ...),且topic也有多个分区和replica,则需要对所有broker的所有数据盘进行扫描,删除该topic的所有分区数据。

一般而言,经过上面4步就可以正常删除掉topic和topic的数据。但是,如果经过上面四步,还是无法正常删除topic,则需要对kafka在zookeeer的存储信息进行删除。具体操作如下:

(注意:以下步骤里面,kafka在zk里面的节点信息是采用默认值,如果你的系统修改过kafka在zk里面的节点信息,则需要根据系统的实际情况找到准确位置进行操作)

step5:

找一台部署了zk的服务器,使用命令:

bin/zkCli.sh -server 【zookeeper server:port】

登录到zk shell,然后找到topic所在的目录:ls /brokers/topics,找到要删除的topic,然后执行命令:

rmr /brokers/topics/【topic name】

即可,此时topic被彻底删除。

如果topic 是被标记为 marked for deletion,则通过命令 ls /admin/delete_topics,找到要删除的topic,然后执行命令:

rmr /admin/delete_topics/【topic name】

备注:

网络上很多其它文章还说明,需要删除topic在zk上面的消费节点记录、配置节点记录,比如:

rmr /consumers/【consumer-group】

rmr /config/topics/【topic name】

其实正常情况是不需要进行这两个操作的,如果需要,那都是由于操作不当导致的。比如step1停止生产和消费程序没有做,step2没有正确配置。也就是说,正常情况下严格按照step1 -- step5 的步骤,是一定能够正常删除topic的。

step6:

完成之后,调用命令:

./bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】

查看现在kafka的topic信息。正常情况下删除的topic就不会再显示。

但是,如果还能够查询到删除的topic,则重启zk和kafka即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
13 条评论
热度
最新
谢谢分享
谢谢分享
回复回复点赞举报
很多时候都会删除不彻底
很多时候都会删除不彻底
22点赞举报
如果没删除彻底,所以需要看看是不是没有按照标准流程来操作。比如,首先停止所有生产和消费程序;或者是auto.create.topics.enable = false 和 delete.topic.enable=true 参数没有设置正确; 或者是kafka本身已经有问题,无法正常运行;或者是zk数据没有删除正确、误删除等。
如果没删除彻底,所以需要看看是不是没有按照标准流程来操作。比如,首先停止所有生产和消费程序;或者是auto.create.topics.enable = false 和 delete.topic.enable=true 参数没有设置正确; 或者是kafka本身已经有问题,无法正常运行;或者是zk数据没有删除正确、误删除等。
回复回复点赞举报
如果不执行step1到step4,直接执行后面step5,也能删除么?
如果不执行step1到step4,直接执行后面step5,也能删除么?
回复回复点赞举报
zookeeper是什么
zookeeper是什么
回复回复点赞举报
我是真小白,大佬能再详细一点吗
我是真小白,大佬能再详细一点吗
回复回复点赞举报
加点图就好了
加点图就好了
11点赞举报
如果对kafka有一定的了解,文章已经说得非常详细直白,是不需要添加图片的。
如果对kafka有一定的了解,文章已经说得非常详细直白,是不需要添加图片的。
回复回复点赞举报
产生的所有文件和原始文件都删除不行吗
产生的所有文件和原始文件都删除不行吗
11点赞举报
还有topic在zk里面保存的信息,这个是非常关键的,也是最容易误删除出错的地方。当然,如果按照文章中的步骤,严格执行,就可以彻底删除topic的元数据以及所有数据。
还有topic在zk里面保存的信息,这个是非常关键的,也是最容易误删除出错的地方。当然,如果按照文章中的步骤,严格执行,就可以彻底删除topic的元数据以及所有数据。
回复回复点赞举报
没彻底删除会出现什么问题吗?
没彻底删除会出现什么问题吗?
11点赞举报
如果topic没有彻底删除干净,后续重新建立topic。生产和消费的时候,由于topic可能会产生残留信息在zk,或者残留offset消费信息,导致后续对这些topic的生产和消费都会出问题。
如果topic没有彻底删除干净,后续重新建立topic。生产和消费的时候,由于topic可能会产生残留信息在zk,或者残留offset消费信息,导致后续对这些topic的生产和消费都会出问题。
回复回复点赞举报
可以,很详细的教程
可以,很详细的教程
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
kafka删除主题_kafka从头消费topic数据
转自https://www.cnblogs.com/xiaodf/p/10710136.html
全栈程序员站长
2022/11/03
6630
kafka删除topic方式
工作中因为各种原因,topic中消息堆积的太多或者kafka所在磁盘空间满了等。可能需要彻底清理一下kafka topic。 cd /opt/kafka/kafka_2.10-0.10.2.2/bin 列出所有topic: ./kafka-topics.sh –zookeeper ip:2181 -list 其实就是检查zk上节点的/brokers/topics子节点,打印出来。 创建topic ./kafka-topics.sh –zookeeper ip:2181 -create –topic my_topic –partitions 4 –replication-factor 1 线上环境将自动创建topic禁用掉,改为手动创建(auto.create.topics.enable=false),partitions和replication-factor是两个必备选项, 第一个参数是消息并行度的一个重要参数,第二个极大提高了topic的可用性,备份因子默认是1,相当于没有备份,其值不能大于broker个数, 否则会报错。同时还可以指定topic级别的配置参数,这种特定的配置会覆盖掉默认配置,并且存储在zookeeper的/config/topics/[topic_name]节点数据里。 –alter –config –deleteConfig。replication-factor参数用来指定需要多少个副本(连同leader在内),一般比较推荐设置为2或3。如果设置太少(比如1)导致可用性下降, 如果设置太大会影响Kafka的性能。 方式一: 配置delete.topic.enable=true 修改kafaka配置文件server.properties,添加delete.topic.enable=true,重启kafka。之后通过kafka命令行就可以直接删除topic 重启kafka nohup /usr/kafka/bin/kafka-server-start.sh /usr/kafka/config/server.properties >/dev/null 2>&1 & 通过命令行删除topic: ./kafka-topics.sh –zookeeper ip:2181 –topic my_topic –delete 方式二: 没有配置delete.topic.enable=true 1、通过命令行删除topic: ./kafka-topics.sh –zookeeper ip:2181 –topic my_topic –delete 因为kafaka配置文件中server.properties没有配置delete.topic.enable=true, 此时的删除并不是真正的删除,只是把topic标记为:marked for deletion 2、删除kafka存储目录(server.properties文件log.dirs配置,默认为”/tmp/kafka-logs”)相关topic目录。 方式三: 若想真正删除它,需要登录zookeeper客户端: cd /opt/kafka/zookeeper-3.4.13/bin chmod 755 ./* (可执行命令)
全栈程序员站长
2022/11/02
2.4K0
kafka批量删除topic_查看kafka集群状态命令
1、删除kafka存储目录(server.properties文件log.dirs配置,默认为”/tmp/kafka-logs”)相关topic目录 2、Kafka 删除topic的命令是:
全栈程序员站长
2022/11/03
9220
kafka批量删除topic_kafka自动创建topic
1.kafka启动之前,在server.properties配置delete.topic.enable=true
全栈程序员站长
2022/11/10
1.7K0
Zookeeper、kafka部署
正文: 安装zookeeper、kafka 解压zk安装包 tar -zxvf zookeeper-3.4.10.tar.gz 添加系统环境变量 vim /etc/profile尾部追加 export ZOOKEEPER_HOME=/software/zookeeper-3.4.10/ export PATH=$ZOOKEEPER_HOME/bin:$PATH export PATH 输入source /etc/profile重新加载系统环境变量 修改zookeeper配置文件 [root@server28
itliusir
2018/05/21
9320
Kafka如何删除topic中的部分数据_kafka修改topic副本数
  在平时对kafka的运维工作中,我们经常会由于某些原因去删除一个topic,比如这个topic是测试用的,生产环境中需要删除。或者我想扩容topic的同时,这个topic中的数据我不想要了,这时候删除topic,增加broker,再重新创建topic就会是比较简单的方法。但是kafka删除topic时,有很多关键的点必须清楚,否则在删除topic的时候就会出现各种各样的问题。
全栈程序员站长
2022/11/03
2.8K0
Kafka如何删除topic中的部分数据_kafka修改topic副本数
Kafka集群安装「建议收藏」
1.上传解压 2.修改配置文件 3.分发到其他节点下 4.启动 5.测试 6.注意
全栈程序员站长
2022/08/10
7480
Kafka集群安装「建议收藏」
kafka删除topic消息的四种方式[通俗易懂]
方法一:快速配置删除法(简单粗暴,如果这个主题有程序还在消费者,此时KAFKA就game over)
全栈程序员站长
2022/11/03
13.4K0
Kafka 服务器集群部署
上篇文章 Kafka 工作机制 讲述了 Kafka 的各组件(包括配置中心、Broker、消息生产者和消费者)的作用,分区与复制的机制等。有了这些概念,本文以三个 Broker 为例,讲述了 Kafka 集群的搭建步骤和方法,并以官方自带的命令行脚本进行消息的生产、消费、查看等操作。
IT技术小咖
2019/06/26
1.9K0
清空kafka_kafka的topic
使用kafka-topics –delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。
全栈程序员站长
2022/09/27
7140
kafka删除topic中的数据_kafka删除数据
二、如果当前topic有使用过即有过传输过信息:并没有真正删除topic只是把这个topic标记为删除(marked for deletion)。想要彻底删除topic数据要经过下面两个步骤:
全栈程序员站长
2022/11/03
4.5K0
Kafka学习笔记之如何永久删除Kafka的Topic
使用kafka-topics --delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。
Jetpropelledsnake21
2019/08/19
2K0
如何永久删除Kafka的Topic
使用kafka-topics --delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。
Fayson
2018/03/29
2.9K0
如何永久删除Kafka的Topic
万字长文解析删除Topic流程领导再也不用担心我排查生产环境问题了(附教学视频,建议收藏!!!)
支持正则表达式匹配Topic来进行删除,只需要将topic 用双引号包裹起来 例如: 删除以create_topic_byhand_zk为开头的topic;
石臻臻的杂货铺[同名公众号]
2021/08/18
7190
万字长文解析删除Topic流程领导再也不用担心我排查生产环境问题了(附教学视频,建议收藏!!!)
kafka 查看topic offset_kafka重置offset
最近我们在生产环境执行删除无用的kafka topic的操作时,因为错误的按照8.2版本之前的删除方式操作8.2.2版本的kafka,导致删除过程异常,删除后出现consumer正在消费的其他正常topic的partition的offset值偏移的情况,导致大量消息重复消费,并且产生连锁反应,给我们的系统稳定性产生明显影响。
全栈程序员站长
2022/11/07
1.2K0
kafuka学习之路(一)kafuka安装和简单使用
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131623.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
1.4K0
解决kafka无法删除topic问题
使用kafka命令删除某个topic之后,查看集群的topic列表时,被删除的tpoic依然存在
全栈程序员站长
2022/11/03
1.8K0
解决kafka无法删除topic问题
【实战】kafka删除Topic常见异常排查思路及解决方案
最近技术群里面有几个同学碰到了 删除Topic的问题, 怎么样也删除不掉,然后我协助排查之后,就做个记录,写篇文章,大家在碰到这类型的问题的时候应该怎么去排查
石臻臻的杂货铺[同名公众号]
2021/12/31
8010
【实战】kafka删除Topic常见异常排查思路及解决方案
Kafka源码系列之如何删除topic
本文依然是以kafka0.8.2.2为例讲解 一,如何删除一个topic 删除一个topic有两个关键点: 1,配置删除参数 delete.topic.enable这个Broker参数配置为True。 2,执行 bin/kafka-topics.sh --zookeeper zk_host:port/chroot --delete --topic my_topic_name 假如不配置删除参数为true的话,topic其实并没有被清除,只是被标记为删除。此时,估计一般人的做法是删除topic在Zookeep
Spark学习技巧
2018/01/30
1.5K0
kafka 集群配置_kafka集群原理
kafka是一个高吞吐的分布式消息队列系统。特点是生产者消费者模式,先进先出(FIFO)保证顺序,自己不丢数据,默认每隔7天清理数据。消息列队常见场景:系统之间解耦合、峰值压力缓冲、异步通信。
全栈程序员站长
2022/09/27
1.3K0
相关推荐
kafka删除主题_kafka从头消费topic数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档