我试图创建一个Kafka主题通过admincommand使用下面的源代码
ZkClient zkClient = new ZkClient(kafkaHost, 10000, 10000, ZKStringSerializer$.MODULE$);
AdminUtils.createTopic(zkClient, "pa_reliancepoc_telecom_usageevent", 10, 2, new Properties());
但得到以下例外
Exception in thread "main" kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:155)
但是,我可以使用shell命令创建主题。
3条答案
按热度按时间xxls0lw81#
在你的代码里,
第四个参数是复制因子。所以您正在尝试创建一个名为的主题
pa_reliancepoc_telecom_usageevent
带隔板count of 10
以及replication of 2
. 所以呢two kafka brokers
应在创建主题时可用。如果少于两个可用,那么您将得到以下异常。确保你正在跑步
kafka cluster with two broker nodes
两个节点should be alive while creating the topic.
要在集群中运行kafka,请参阅此链接中的步骤6nbnkbykc2#
配置您的本地计算机,使多个代理可以启动并运行,以防您决定保留您的代理
replication_factor > 1
.您只需拥有多个
server.properties
文件。例如server-1.properties
&server-2.properties
然后需要指定不同的broker.id
&port
在每一个文件中使它们独一无二。。然后使用以下命令启动多个示例
有关更多详细信息,请查看步骤6:设置多代理群集
brqmpdu13#
我在建立多个经纪人时也面临同样的问题。
我缺少的步骤是:
编辑配置文件时:config/server-1.properties:broker.id=1 listeners=plaintext://:9093 log.dir=/tmp/kafka-logs-1
还需要更新“日志基础知识”部分(请参见下文):
####################### 日志基础知识
以逗号分隔的目录列表,用于存储日志文件