[英]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-*'不起作用
注意:我会将此添加为评论,但没有足够的代表。
这是一次性删除所有主题的最简单方法。 请按照以下步骤操作:
zookeeper-shell.bat 本地主机:2181
你会收到一条消息——“欢迎来到动物园管理员!”
删除所有/经纪人/主题
我自己测试过这个,它对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.