我已发出删除主题的命令:
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic vip_ips_alerts
它似乎给出了一个快乐的回应:
[2014-05-31 20:58:10,112] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)
Topic "vip_ips_alerts" queued for deletion.
但是现在10分钟后,主题仍然出现在--list
命令中:
./bin/kafka-topics.sh --zookeeper localhost:2181 --list
vip_ips_alerts - marked for deletion
那是什么意思?该主题什么时候真的删除?我如何加快这个过程?
答案 0 :(得分:32)
tl; dr 在delete.topic.enable = true
Kafka经纪人中设置config/server.properties
并且......耐心等待。
Kafka的最新开发版本 0.8.3-SNAPSHOT :
➜ kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 2 --replication-factor 1
Created topic "my-topic".
➜ kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic my-topic
Topic:my-topic PartitionCount:2 ReplicationFactor:1 Configs:
Topic: my-topic Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: my-topic Partition: 1 Leader: 0 Replicas: 0 Isr: 0
➜ kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --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_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-topics.sh --zookeeper localhost:2181 --list
➜ kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗
关键是在delete.topic.enable=true
中使用config/server.properties
来启动Kafka经纪人。
➜ kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ grep delete.topic.enable config/server.properties
delete.topic.enable=true
您还可以确保在经纪人的日志中设置为真:
➜ kafka_2.11-0.8.3-SNAPSHOT git:(trunk) ✗ ./bin/kafka-server-start.sh config/server.properties
[2015-07-24 22:33:26,184] INFO KafkaConfig values:
...
delete.topic.enable = true
答案 1 :(得分:21)
在我使用Kafka 8.2.2的情况下,我不得不手动删除以下条目 -
登录zookeeper并 -
hbase zkcli
rmr /brokers/topics/{topic_name}
rmr /admin/delete_topics/{topic_name}
答案 2 :(得分:14)
你可以做到。
sudo ./zookeeper-shell.sh localhost:2181 rmr / brokers / topics / your_topic
答案 3 :(得分:10)
我遇到了同样的问题,花了几天时间试图找出问题所在。我触发了删除主题的命令,但主题已标记为删除但未删除。
所有经纪人的delete.topic.enable = true
没有帮助。我不得不最后登录zooker
./zkCli.sh # and delete the topics using
rmr /brokers/topics/<<topic>> and rmr /admin/delete_topics/<<topic>>
请记得在此之后重启kafka。 希望这能解决你的问题。
答案 4 :(得分:4)
正确答案实际上如下。关闭Kafka用户的群组电子邮件分发列表:
FrançoisLangelier*@gmail.comüberkafka.apache.org05:57 (vor 1 Stunde)
用户删除主题无效ATM
我认为它将在下一个版本中提供 https://issues.apache.org/jira/browse/KAFKA-1397
答案 5 :(得分:2)
我的问题类似。 我删除了一个主题,当我列出所有主题时它给了我相同的信息。
我把动物园管理员和经纪人带了下来。 在我的代理配置文件中设置delete.topic.enable = true 开始动物园管理员和boker
主题已经消失......感谢Jacek Laskowski
答案 6 :(得分:2)
对于kafka版本0.10.0.0
,只需设置以下内容即可启用主题删除:
delete.topic.enable
主题会在短时间内删除
kafka-topics --delete --zookeeper your-zk:2181 --topic yourTopicName
您可以使用以下命令确认它已消失:
kafka-topics --describe --zookeeper your-zk:2181 --topic yourTopicName
答案 7 :(得分:2)
在Zookeeper上查看主题的状态
bin\windows>kafka-topics.bat --list --zookeeper localhost:2181
Output: topic shows marked for deletion
在 server.properties 中设置 delete.topic.enable = true 不能正常工作。
解决方案:
检查zookeeper.properties文件中的zookeeper数据目录位置。
是 dataDir = / tmp / zookeeper 。
将“ dataDir”更新到新位置后,问题得到解决。
dataDir=zk-temp
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
答案 8 :(得分:1)
删除主题时遇到此问题。当尚未设置delete.topic.enable = true时,已创建主题。我们在config中设置,重新启动kafka以应用新配置。删除主题并看到“标记为删除”。然后我们又重新启动了kafka。 40分钟后,所有主题都被删除了(9个主题,总分区数以千计)。分区数量较多的主题似乎需要更长时间,最初看起来似乎没有发生任何事情。
答案 9 :(得分:1)
对于kafka版本0.10.0.0,通过设置:
就足以启用主题删除delete.topic.enable
该主题会在短时间内删除。无需重启。
kafka-topics --delete --zookeeper your-zk:2181 - topic yourTopicName
您可以使用以下命令确认它已消失:
kafka-topics --describe --zookeeper your-zk:2181 - topic yourTopicName
答案 10 :(得分:1)
删除几乎立即发生(v 0.9)。我相信你应该是一样的。
标记后,将在作为主题分区领导者的kafka节点上触发删除。要记住的是必须正确配置主题分区前导(就侦听器而言),否则它将不会收到删除日志的指令。
我已将我的标记删除&#34;主题一直停留在该状态,直到我更正了我的服务器属性并重新启动了相应的节点。
答案 11 :(得分:0)
在Kafka中,将主题标记为删除后,它将在60000毫秒后最终被删除。
检查属性log.segment.delete.delay.ms。
文档说:
file.delete.delay.ms:从中删除文件之前要等待的时间 文件系统默认值为60000毫秒。
答案 12 :(得分:0)
如果上面没有任何效果,您可以尝试以下:
First, log into the Zookeeper CLI console using the proper ‘zkCli.sh’ file, you’ll find this in the ‘bin’ directory in your Zookeeper installation.
2. get /brokers/topics/<topic_name>
3. rmr /brokers/topics/<topic_name>
4. rmr /admin/delete_topics/<topic_name>