![](/img/trans.png)
[英]Unable to setup Apache Zookeeper and Kafka on windows machine
[英]Kafka: org.apache.zookeeper.KeeperException$NoNodeException while creating topic on multi server setup
我正在嘗試在所有不同的計算機上設置1個生產者,1個消費者和3個代理的多節點Kafka-0.8.2.2
集群。
在producer
上創建主題時,出現錯誤,如org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/ids
。 完整的控制台輸出可在此處獲得 。 Kafka Producer
的日志中沒有錯誤。
我用來運行Kafka
命令是:
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic edwintest
注意 :Zookeeper服務正在所有服務器上運行,並且所有三個代理都在其上運行Kafka服務器( 只有代理需要Kafka Server。 對嗎? )。
我的producer.properties的配置如下:
metadata.broker.list=<IP.OF.BROKER.1>:9092,<IP.OF.BROKER.2>:9092,<IP.OF.BROKER.3>:9092
producer.type=sync
compression.codec=none
serializer.class=kafka.serializer.DefaultEncoder
以下是我用作參考的許多文章:
乍一看,您似乎是在向本地動物園管理員打電話來創建主題,而該動物園管理員並不知道您的任何卡夫卡·布魯克斯。 您應該致電./bin/kafka-topics.sh --create --zookeeper <IP.OF.BROKER.1>:2181
問題是因為我試圖連接到本地主機的zookeeper
。 我的理解是Zookeeper需要在生產者,消費者和Kafka經紀人上運行,並且生產者->經紀人和經紀人->消費者之間通過Zookeeper進行通信。 但這是不正確的。 其實:
Zookeeper和Kafka服務器應僅在代理服務器上運行。 在創建主題或將內容發布到主題時,應使用--zookeeper選項傳遞任何Kafka代理的公共DNS。 無需在生產者或使用者實例上運行Kafka服務器。
正確的命令將是:
./bin/kafka-topics.sh --create --zookeeper <Public-DNS>:<PORT> --replication-factor 1 --partitions 3 --topic edwintest
其中: Public-DNS是任何Kafka代理的DNS,而PORT是zookeeper服務的端口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.