繁体   English   中英

如何在 Apache Kafka 中删除多个主题

[英]How to delete multiple topics in Apache Kafka

假设我有许多具有相同前缀的主题,例如:

giorgos-topic1
giorgos-topic2
giorgos-topic3
...

用于删除单个主题(例如giorgos-topic1 )的命令如下:

./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic giorgos-topic1

是否可以使用单个命令和正则表达式/通配符(例如giorgos-* )来删除多个主题,而不是giorgos-*输入所有需要删除的主题名称?

是的,您可以在使用kafka-topics.sh工具删除主题时使用类似正则表达式的表达式:

例如,删除所有以giorgos-开头的主题:

./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'

使用管理 API,您还可以一次删除多个主题,请参阅AdminClient.deleteTopics

在无法使用正则表达式的情况下,我们可以使用逗号分隔的主题名称列表来删除主题。

kafka-topics.sh --zookeeper 10.0.0.160:2181 --delete --topic giorgos-topic1,giorgos-topic2,giorgos-topic3,...

如果它抱怨no matches found: giorgos-.*请添加单引号('giorgos-.* ') no matches found: giorgos-.*

./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic 'giorgos-.*'

只是为了添加到已接受的答案中,* 通配符需要在前面加上 '.'

以我的经验:

--delete --topic '_confluent-controlcenter-5-3-1-1-.*'有效

--delete --topic '_confluent-controlcenter-5-3-1-1-*'不起作用

注意:我会将此添加为评论,但没有足够的代表。

这是一次性删除所有主题的最简单方法。 请按照以下步骤操作:

  1. 连接到zookeeper CLI。

zookeeper-shell.bat 本地主机:2181

你会收到一条消息——“欢迎来到动物园管理员!”

  1. 然后输入以下命令,所有主题都将被删除。

删除所有/经纪人/主题

我自己测试过这个,它对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM