Kafka主题未被删除

时间:2017-11-17 14:56:52

标签: apache-kafka

我正在使用Kafka 0.10.0.1。集群中有3个经纪人。我发出删除命令来删除近10个自一个月以来未被使用的主题。我已经检查过,没有消费者在这些主题上注册,他们的日志大小也没有增加。

但是,已经超过5个小时,这些主题尚未删除。它们只是标记为删除。可能是什么原因?

2 个答案:

答案 0 :(得分:3)

默认情况下,在0.10,delete.topic.enablefalse。为了能够删除主题,您需要在代理属性文件中将其设置为true

请注意,从1.0.0开始,默认情况下已启用此功能。

答案 1 :(得分:2)

延伸到Mickael回答

在Kafka 0.10中,delete.topic.enable的默认值为false。

使用命令行工具删除主题时,Zookeeper节点会请求创建删除。在正常情况下,这会立即由群集执行。但是,命令行工具无法知道群集中是否启用了主题删除。因此,它会请求删除主题,如果禁用删除,则会导致意外。

通过在/ admin / delete_topic下创建Zookeeper节点作为子节点来请求删除主题,该节点以主题名称命名。将调用新线程并检查是否启用主题删除。如果启用它将删除zookeeper中的所有日志和路径

如果未启用删除,我们必须手动删除主题的所有配置

手动删除主题的步骤:

  1. 关闭群集中的所有代理
  2. 从Kafka群集路径中删除Zookeeper路径/代理/主题/ TOPICNAME。请注意,此节点具有必须首先删除的子节点。
  3. 从每个代理的日志目录中删除分区目录。这些名称将命名为TOPICNAME-NUM,其中NUM是分区ID。
  4. 重启所有经纪人