apache-kafka - 如何从 cli 中删除 Kafka 主题?
问题描述
$ kafka-topics --zookeeper localhost:2181 --list | grep my-topic
my-topic
$ kafka-topics --zookeeper localhost:2181 --delete --topic my-topic
Topic my-topic is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
$ kafka-topics --zookeeper localhost:2181 --list | grep my-topic
my-topic - marked for deletion
从那以后已经过去了几个小时,这个话题仍然没有被删除。
我已经看到了我应该放入delete.topic.enable
并server.properties
重新启动 kafka 的建议。我试过这个。它没有奏效。
$ grep -F delete.topic.enable /usr/local/etc/kafka/server.properties
delete.topic.enable = true
(为什么不默认设置?)
无论如何,这些建议都是针对 kafka 0.* 的,而我使用的是更新版本。
$ brew list --versions kafka
kafka 1.1.0
如何删除主题?
我可以关闭 kafka 和 zookeeper,运行rm -r /usr/local/var/lib/kafka-logs /usr/local/var/run/zookeeper/data
,然后再次启动 zookeeper 和 kafka。但这是相当激烈的。当然应该有一些方法可以说服kafka-topics
实际删除一个主题?
解决方案
在同事的建议下,我
- 关闭 Kafka 和 Zookeeper
- 将行添加
listeners=PLAINTEXT://127.0.0.1:9092
到/usr/local/etc/kafka/server.properties
- 重启 Zookeeper 和 Kafka
现在我可以再次删除主题。我不知道为什么这会起作用,但怀疑它与最近的 macOS 升级有关。
推荐阅读
- drupal-7 - 如何从规则模块操作中重写 drupal 页面元标记?
- assembly - 指令 ADD ESP 4 的真实行为
- typescript - 是否有用于 tslint 规则的数据库?
- mysql - 从 MySQL 表中特定列的第一个空行更新
- google-cloud-dataflow - 在不设置 Google 应用程序凭据的情况下使用 Google Dataflow 运行 Apache Beam
- javascript - 来自数组的 15 个随机数 (JS)
- java - Swagger @ApiParam 需要在传递 null 时不起作用
- scala - 对于理解内的 Either 值的模式匹配?
- python - 将预测方法作为函数参数传递
- javascript - 无法在没有得到语法或调用未定义函数错误的情况下将 JQuery 添加到 wordpress