gpt4 book ai didi

apache-kafka - 列出 Apache Kafka 中所有可用代理的命令是什么?

转载 作者:行者123 更新时间:2023-12-02 11:10:07 26 4
gpt4 key购买 nike

我想在 Apache Kafka 中运行多节点集群。我制作了三个 server.properties 文件 - server、server1 和 server2。我还给出了不同的代理 ID 和不同的端口号。仍然在复制因子为 3 的情况下运行脚本 kafka-topics.sh ,它会抛出一个错误,指出复制因子:3 大于代理数量:0

我使用了这个命令:

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

显示的错误是

Error while executing topic command replication factor: 3 larger than available brokers: 0 kafka.admin.AdminOperationException: replication factor: 3 larger than available brokers: 0 at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70) at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:171) at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:93) at kafka.admin.TopicCommand$.main(TopicCommand.scala:55) at kafka.admin.TopicCommand.main(TopicCommand.scala)

你能告诉我哪里出错了吗?

最佳答案

我认为你至少应该启动3个kafka服务器以确保broker的数量大于或等于复制因子的数量:

首先我们为每个代理创建一个配置文件:

cp config/server.properties config/server-1.properties

cp config/server.properties config/server-2.properties

现在编辑这些新文件并设置以下属性:

config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1


config/server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dir=/tmp/kafka-logs-2

broker.id 属性是集群中每个节点的唯一且永久的名称。我们必须覆盖端口和日志目录只是因为我们在同一台机器上运行这些,并且我们希望阻止代理尝试在同一端口上注册或覆盖彼此的数据。我们已经有了 Zookeeper 并且启动了我们的单个节点,所以我们只需要启动两个新节点:

bin/kafka-server-start.sh config/server-1.properties

bin/kafka-server-start.sh config/server-2.properties

现在创建一个复制因子为三的新主题:

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

关于apache-kafka - 列出 Apache Kafka 中所有可用代理的命令是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33570204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com