Kafka管理与监控——彻底删除topic

一、配置

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

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

二、停止消费

如果需要被删除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,并认真把生产和消费程序彻底全部停止。

三、删除命令

进入kafka安装主目录,执行以下命令删除:

bin/kafka-topics.sh -delete --zookeeper 172.16.10.91:2181,172.16.10.92:2181,172.16.10.93:2181 --topic logstash-log-dev

-----------------------------------------------------------------------------------------【彻底删除分割线】------------------------------------------------------------------------------------------------------

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

四、删除zk数据目录

进入安装zk主目录,执行以下命令登陆:

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

登录到zk shell,执行以下命令找到topic所在的目录:

ls /brokers/topics

找到要删除的topic,然后执行命令,此时topic被彻底删除

rmr /brokers/topics/【topic name】

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

rmr /admin/delete_topics/【topic name】

五、删除kafka数据目录

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

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

六、验证

在kafka安装主目录,执行以下命令查看现在kafka的topic信息。

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

正常情况下删除的topic就不会再显示。但是,如果还能够查询到删除的topic,则重启zk和kafka即可。

原文地址:https://www.cnblogs.com/caoweixiong/p/11748180.html

时间: 2024-10-06 10:20:44

Kafka管理与监控——彻底删除topic的相关文章

Kafka管理与监控——调优

1.JVM参数配置优化 如果使用的CMS GC算法,建议JVM Heap不要太大,在4GB以内就可以.JVM太大,导致Major GC或者Full GC产生的“stop the world”时间过长,导致broker和zk之间的session超时,比如重新选举controller节点和提升follow replica为leader replica. JVM也不能过小,否则会导致频繁地触发gc操作,也影响Kafka的吞吐量.另外,需要避免CMS GC过程中的发生promotion failure和

kafka管理监控插件

kafka 监控插件 1.KafkaOffsetMonitor 项目地址:https://github.com/quantifind/KafkaOffsetMonitor KafkaOffsetMonitor是用来实时监控Kafka集群的consumers以及它们在partition中的offset(偏移量). You can see the current consumer groups, for each group the topics that they are consuming an

kafka彻底删除topic

如果只是用kafka-topics.sh的delete命令删除topic,会有两种情况: 如果当前topic没有使用过即没有传输过信息:可以彻底删除 如果当前topic有使用过即有过传输过信息:并没有真正删除topic只是把这个topic标记为删除(marked for deletion). 要彻底把情况2中的topic删除必须把kafka中与当前topic相关的数据目录和zookeeper与当前topic相关的路径一并删除. 相关组件的版本 zookeeper: 3.4.6 kafka: 0.

kafka删除topic的方法

0.8的官方文档提供了一个删除topic的命令: kafka-topics.sh --delete 但是在运行时会报错找不到这个方法. kafka-topics.sh最终是运行了kafka.admin.TopicCommand这个类,在0.8的源码中这个类中没有找到有delete topic相关的代码. 在kafka的admin包下,提供了一个DeleteTopicCommand的类,可以实现删除topic的功能. kafka.admin.DeleteTopicCommand 其中删除topic

kafka删除topic

手动: 删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录 删除zookeeper "/brokers/topics/"目录下相关topic节点 命令+手动: bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic mrtopic --zookeeper cmcc1:2181,cmcc2:2181,cmcc

Kafka如何删除topic?

Kafka如何删除topic? 今天为大家带来"Kafka删除topic原理解析",希望可以帮到那些苦于无法删除topic的朋友们. 前提条件: 在启动broker时候开启删除topic的开关,即在server.properties中添加:  delete.topic.enable=true 命令: bin/kafka-topics.sh --zookeeper zk_host:port/chroot --delete --topic my_topic_name 这条命令其实就是在zo

kafka实战 - 删除topic

概述 在平时对kafka的运维工作中,我们经常会由于某些原因去删除一个topic,比如这个topic是测试用的,生产环境中需要删除.或者我想扩容topic的同时,这个topic中的数据我不想要了,这时候删除topic,增加broker,再重新创建topic就会是比较简单的方法.但是kafka删除topic时,有很多关键的点必须清楚,否则在删除topic的时候就会出现各种各样的问题. 我测试环境使用的kafka版本是0.10.2.0,不同版本的kafka默认配置和bin目录下脚本使用的方式略有不同

kafka管理器之kafka-manager

功能 为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况.它支持管理多个集群.选择副本.副本重新分配以及创建Topic.同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能: 管理多个kafka集群 便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分

kafka管理器kafka-manager部署安装

参考site:https://github.com/yahoo/kafka-manager 一.功能 管理多个kafka集群 便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况) 选择你要运行的副本 基于当前分区状况进行 可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同) 删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true) Topic list会指明哪些topi