首页 > 其他分享 >kafka删除topic清空数据

kafka删除topic清空数据

时间:2023-02-13 16:47:39浏览次数:47  
标签:删除 -- topics kafka topic 清空 server

一般情况下,是不会删除数据的。到达一定时间后,kafka会自动删除。如果一定要删除可以删除topic在重建topic了

No. 1:

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

No. 2:

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

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

No. 3:

调用命令删除topic:

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

No. 4:

删除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里面的节点信息,则需要根据系统的实际情况找到准确位置进行操作)

No. 5:

登陆到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的。

No. 6:

完成之后,调用命令:

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

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

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

创建topic

bin/kafka-topics.sh --create --zookeeper 【zookeeper server:port】 --replication-factor 3 --partitions 3 --topic 【topic name】

–replication-factor 2 #3个副本

–partitions 1 #3个分区

–topic #主题名为shuaige

 

标签:删除,--,topics,kafka,topic,清空,server
From: https://www.cnblogs.com/banger/p/17116870.html

相关文章

  • kafka笔记
    1、概念:kafka是一个用scala语言编写的,分布式、支持分区(partition)、多副本(replica),基于zookeeper协调分布式消息系统,它最大的特性就是可以实时处理大量数据以满足各种需......
  • go连接kafka
    Part1前言本文主要介绍如何通过go语言连接kafka。这里采用的是sarama库。​​https://github.com/Shopify/sarama​​Part2库的安装goget-ugithub.com/Shopify/saramago......
  • kafka如何开启kerberos认证
    参考:     https://www.cnblogs.com/wuyongyin/p/15624452.html kerberos基本原理       https://www.cnblogs.com/wuyongyin/p/15634397.html kerb......
  • 05-KafkaConsumer
    1.工作流程1.1消费者组概述ConsumerGroup(CG):由多个consumer组成。形成一个消费者组的条件,是所有消费者的groupId相同。消费者与消费组这种模型可以让整体的消费......
  • 04-KafkaBroker
    1.工作流程1.1Zk存储的信息1.2总体工作流程step1~6:step7~11:模拟broker上下线,Zk中的数据变化:(1)查看/kafka/brokers/ids路径上的节点[zk:localhost:2181(......
  • 02-KafkaProducer
    1.发送消息流程1.1整体架构整个生产者客户端由两个线程协调运行,这两个线程分别为主线程和Sender线程(发送线程)。在主线程中由KafkaProducer创建消息,然后通过可能的......
  • 搭建kafka
    1、安装jdkjava-version查看jdk版本yum-ylistjava*查看已安装和可安装的软件包yum-yinstalljava安装新版本 2、安装zookeeper(单机模式)a) 下载地址http......
  • rocketMq和kafka对比
    为什么在RocketMQ和kafka中选型在单机同步发送的场景下,Kafka>RocketMQ,Kafka的吞吐量高达17.3w/s,RocketMQ吞吐量在11.6w/s。kafka高性能原因生产者Kafka会把收到的消息......
  • Kafka
    1、为什么有消息系统1.解耦合2.异步处理例如电商平台,秒杀活动。一般流程会分为:1:风险控制、2:库存锁定、3:生成订单、4:短信通知、5:更新数据3.通过消息系统将......
  • 搜索清空时el-date-picker报错问题
    change回调函数加个参数,清空时参数会是null,v-model的数据也是null,把v-model的数据设置为空数据,不在报错。<divclass="block"><el-date-pickerv-mode......