当前位置: 首页 > 面试题库 >

如何在Apache Kafka中删除主题

楚浩然
2023-03-14
问题内容

我需要在kafka-0.8.2.2.3中删除一个主题。我已使用以下命令删除该主题:

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

该命令已成功执行,但是当我运行命令以列出主题时,我可以看到该主题仍然存在,并且显示 标记为“删除”

bin/kafka-topics.sh --list --zookeeper localhost:2181
DummyTopic - marked for deletion

当我创建主题DummyTopic时,它会输出异常,该主题已存在,下面是堆栈跟踪:

Error while executing topic command Topic "DummyTopic" already exists.
kafka.common.TopicExistsException: Topic "DummyTopic" already exists.
    at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:248)
    at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:233)
    at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:92)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:54)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)

请让我知道如何删除该主题。


问题答案:

从0.8.2.x版本开始支持删除主题。您必须delete.topic.enable首先在所有代理上启用主题删除(设置为true)。

注意:从1.0.x开始,delete.topic.enable默认情况下功能是稳定的true

请按照以下逐步过程手动删除主题

  1. 停止 Kafka 服务器
  2. 删除主题目录,每个 代理 (如在定义logs.dirslog.dir属性)与rm -rf命令
  3. 连接到 Zookeeper 实例:zookeeper-shell.sh host:port
  4. Zookeeper 实例中:
    1. 使用以下方式列出主题: ls /brokers/topics
    2. 使用以下方法从 ZooKeeper中 删除主题文件夹:rmr /brokers/topics/yourtopic
    3. 退出Zookeeper实例(Ctrl + C)
  5. 重新启动 Kafka 服务器
  6. 使用此命令确认是否已删除 kafka-topics.sh --list --zookeeper host:port


 类似资料:
  • 距今已过去数小时,话题仍未删除。 我看到了一些建议,建议我将放在我的中,然后重新启动Kafka。我试过这个。没奏效。 (为什么默认不设置这个?) 我可以关闭kafka和zookeeper,运行,然后再次启动zookeeper和kafka。但这是相当激烈的。确实应该有一些方法来说服实际上删除一个主题?

  • 我有几个Kafka的题目作为测试。现在我想通过清理我的Kafka主题列表来把它们全部除掉。我设置了变量,然后停止并重新启动zookeeper和kafka服务器。但什么也帮不了我。主题仍然存在,“标记为删除”。我读了这个问题,但没有找到任何答案。否则,这里建议手动移除任何主题。但我该怎么做呢?在故事的结尾,手动或通过命令行,我如何永久删除Kafka主题?

  • 我们执行以下步骤以删除主题-hgpo.llo.prmt.processed 但即使在12小时后,主题文件夹仍未从/var/kafka/kafka-logs中删除 注意-我们set-delete.topic.enable=true 在/var/kafka/kafka-logs下,我们有许多主题文件夹,如: ..

  • 问题内容: 我有以下表模式,它将user_customers映射到实时MySQL数据库的权限: 我想删除user_customer_id和Permission_id的主键,并保留id的主键。 当我运行命令时: 我收到以下错误: 如何删除列的主键? 问题答案: 如果没有索引,则维护自动增量列会变得太昂贵,这就是为什么要求将自动增量列作为索引的最左侧部分的原因。 您应该在删除键之前删除autoincr

  • 主题的最后状态: 组,主题,分区,当前偏移量,日志结束偏移量,滞后,所有者G.AB_KAFF,T.AB_KAFF,0,5,5,0,Consumer-2_/127.0.0.1 G.AB_KAFF,T.AB_KAFF,1,5,5,0,Consumer-2_/127.0.0.1 现在我删除主题。并将邮件发布到此主题 那么为什么Kafka要把滞后设定为-ve数。这难道不是一个潜在的问题吗? 假设我再次订阅

  • 问题内容: 我在mysql表中有一个名为“ id”的列,这也是自动递增的主键。 当我删除行时,其ID也会被删除,从而在我的ID序列中产生“空洞”,例如 1、2、3、9、10、30等 有没有办法重复使用这些已删除的ID:S? 问题答案: 使用: …将根据表中现有的最高现有值将auto_increment值重置为下一个。这意味着它不能用于校正多个间隙。 这样做的唯一原因是为了美观的记录-数据库不在乎记