【问题标题】:How to create a list of topics in Apache Kafka using single command如何使用单个命令在 Apache Kafka 中创建主题列表
【发布时间】:2020-06-01 01:55:10
【问题描述】:

到目前为止,我正在使用以下命令一一创建主题。

sh ./bin/kafka-topics --create --zookeeper localhost:2181  --topic sdelivery --replication-factor 1 --partitions 1

因为我有 200 多个主题要创建。有没有办法用一个命令创建一个主题列表?

我使用的是 0.10.2 版本的 Apache Kafka。

【问题讨论】:

    标签: unix apache-kafka apache-zookeeper


    【解决方案1】:

    这似乎更像是一个 unix/bash 问题,而不是 Kafka 问题:xargs 实用程序专门设计用于从参数列表重复运行命令。在您的具体情况下,您可以使用:

    cat topic_list.txt | xargs -I % -L1 sh ./bin/kafka-topics --create --zookeeper localhost:2181 --topic % --replication-factor 1 --partitions 1
    

    如果您想进行“试运行”并查看将执行哪些命令,您可以将 sh 替换为 echo sh

    或者,您可以确保您的配置文件具有--replication-factor 1--partitions 1 的默认主题设置,并允许在您第一次向它们发送消息时自动创建这些主题。

    【讨论】:

      【解决方案2】:

      为每个主题添加自定义分区和复制的扩展答案

      您可以为此使用awk

      创建文件

      $ cat /tmp/topics.txt
      test1:1:1
      test2:1:2
      

      然后cd到你的Kafka文件夹,并解析文件

      $ awk -F':' '{ system("./bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic=" $1 " --partitions=" $2 " --replication-factor=" $3) }' /tmp/topics.txt
      Created topic "test1".
      Created topic "test2".
      

      我们可以看到主题已创建

      $ ./bin/kafka-topics.sh --zookeeper localhost:2181 --list
      test1
      test2
      

      注意:如此快速的数百个主题可能会使 Zookeeper 超负荷,因此在最后添加对 "; sleep 10" 的调用可能会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-26
        • 2016-07-21
        • 2017-07-21
        • 2014-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多