• 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即可。

  • 相关阅读:
    Activity.startManagingCursor方法
    android SQLite使用SQLiteOpenHelper类对数据库进行操作
    Android类参考---SQLiteOpenHelper
    使用SQLiteOpenHelper类对数据库简单操作
    dom4j 最常用最简单的用法(转)
    setContentView()与LayoutInflater.inflate()作用
    Android listview与adapter用法
    ListView属性及divider设置分割线
    android布局属性详解
    Android layout属性之gravity和layout_gravity
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/11748180.html
Copyright © 2020-2023  润新知