JAVA_HOME、PATH)建議分離下載 ZooKeeper 與 Kafka,而非使用 Kafka 打包版 ZooKeeper(僅適合單節點測試)。
zoo.cfgF:\zookeeper-3.4.8conf 目錄,複製 zoo_sample.cfg 為 zoo.cfgzoo.cfg(建議用 Notepad++),修改 dataDir:dataDir=F:/zookeeper-3.4.8/data
data 目錄,ZooKeeper 不會自動創建ZOOKEEPER_HOME=F:\zookeeper-3.4.8Path,追加 %ZOOKEEPER_HOME%\bin;(注意分號分隔,勿覆蓋原值)bin 目錄按 Shift+右鍵 → 在此處打開命令視窗zkServer.cmdbinding to port 2181 即啟動成功server.propertiesF:\kafka_2.11-0.9.0.1config/server.properties,修改:log.dirs=F:/kafka_2.11-0.9.0.1/kafka-logs # 若 ZooKeeper 在其他機器,修改 zookeeper.connect=IP:2181 # 本機單節點保持默認 localhost:2181
kafka-logs 目錄.\bin\windows\kafka-server-start.bat .\config\server.properties
started 即成功# 在 F:\kafka_2.11-0.9.0.1\bin\windows 目錄下 kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
kafka-console-producer.bat --broker-list localhost:9092 --topic test
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test
在生產者命令行輸入任意文字,消費者端即時接收顯示,驗證通過。
| 問題 | 原因 | 解決 |
|---|---|---|
Kafka 啟動報 java.lang.UnsupportedClassVersionError | JDK 版本過低 | 升級 JDK 1.7+,重新設置 JAVA_HOME |
| ZooKeeper 啟動閃退 | dataDir 未創建或路徑錯誤 | 檢查 zoo.cfg 中 dataDir 路徑並手動建立目錄 |
| 生產者/消費者連不上 | 防火牆攔截 9092/2181 端口 | 關閉防火牆或放行端口 |
Topic 創建報 Replication factor invalid | 單節點 replication-factor 必須為 1 | 單機測試固定用 1 |