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 ./* (可执行命令)

命令:./bin/zkCli.sh
找到topic所在的目录:ls /brokers/topics
执行命令:rmr /brokers/topics/my_topic即可,此时topic被彻底删除。
另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/{topic name},
如果你删除了此处的topic,那么marked for deletion 标记消失。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181011.html原文链接:https://javaforall.cn

未经允许不得转载:木盒主机 » kafka删除topic方式

赞 (0)

相关推荐

    暂无内容!