【问题标题】:Topic doesn't exist as expected in kafka主题在kafka中不存在
【发布时间】:2020-11-09 10:56:05
【问题描述】:

运行此命令后:

bin/kafka-topics.bat --list --bootstrap-server localhost:6666, localhost:6667, localhost:6668, localhost:6669

输出 - 测试

After running this command :

bin/kafka-topics.bat --describe --bootstrap-server localhost:6666, localhost:6667, localhost:6668, localhost:6669 --topic Test

错误:

java.lang.IllegalArgumentException:主题“测试”未按预期存在 在 kafka.admin.TopicCommand$.kafka$admin$TopicCommand$$ensureTopicExists(TopicCommand.scala:523) 在 kafka.admin.TopicCommand$AdminClientTopicService.describeTopic(TopicCommand.scala:301) 在 kafka.admin.TopicCommand$.main(TopicCommand.scala:68) 在 kafka.admin.TopicCommand.main(TopicCommand.scala)

Can anybody help me in solving this issue?

【问题讨论】:

  • 您必须事先创建主题,或者您可以将 Kafka 配置为自动创建主题。
  • @daniu 我已经创建了话题

标签: apache-spark apache-kafka apache-zookeeper


【解决方案1】:

我创建了 4 个代理,复制因子为 3,我正在检查所有代理。这就是为什么它没有显示主题。当我检查了 3 个经纪人时,它给了我正确的信息并且没有给出任何错误。

【讨论】:

    【解决方案2】:

    主题名称与主题元数据、主题中每个分区的领导者等一起存储在 Zookeeper 中。

    在您的情况下,zookeeper 似乎有此信息,但可能 kafka 数据已损坏或已删除。

    停止 kafka、zookeeper,删除你的 zookeeper 数据目录、kafka 数据目录并重新启动这两个服务。

    重新创建您的主题,它应该可以正常工作。

    【讨论】:

    • 实际上我已经创建了 4 个主机,但复制因子是 3,这就是为什么它没有显示主题。谢谢 Suhas NM
    • 我看不到主题可见和复制因子之间的关系。
    • 您不能定义大于代理数的复制因子。
    • 不,Kafka 不是这样工作的,您的主题信息存储在 zookeeper 中,您应该能够为所有节点生产/消费,而不管复制因子以及该节点是否包含分区数据在指定主题中
    • 是的,数据将在所有代理上复制。您可能正在考虑消费者;如果您有 4 个,其中一个将不会收到该主题的消息。
    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2015-09-05
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多