不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

碼頭工人 8年前發布 | 14K 次閱讀 消息系統 Apache Kafka

引言

本教程的目的是提供在 Windows 操作系統上運行 Apache Kafka 的一個手把手的指南。本指南也將提供設置 Java 與 ZooKeeper 的指導。Apache kafka 是一個快速且可伸縮的消息隊列系統,具有在讀寫環境中處理真正重載荷的能力。你可以在 http://kafka.apache.org/ 這個網站上找到更多關于 kafka 的東西。Apache kafka 需要一個正在運行的 ZooKeeper 實例,用于提供可靠的分布式調度。請在 https://zookeeper.apache.org/ 這個網站上尋找更多關于 ZooKeeper 的東西。

請查看這個視頻來將 Kafka 安裝到 Windows 上。(然而并沒有視頻,你懂的)

下載必要文件

  1. 根據你的操作系統和 CPU 架構下載服務器 JRE,地址為 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

  2. 下載并安裝 7-zip,地址為 http://www.7-zip.org/download.html

  3. 下載并使用 7-zip 解壓 Zookeeper,地址為 http://zookeeper.apache.org/releases.html

  4. 下載并使用 7-zip 解壓 Kafka,地址為 http://kafka.apache.org/downloads.html

安裝

a. 安裝及配置 Java 運行時環境(JRE)

  1. 開始 JRE 的安裝并選中“Change destination folder”復選框,然后點擊 install。

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

  1. 修改安裝路徑為任何名字中不帶空格的文件夾。比如 C:\Java\jre1.8.0_xx\ 。(默認情況下它將會是 C:\Program Files\Java\jre1.8.0_xx)然后點擊 Next。

  2. 現在通過 控制面板 -> 系統 -> 高級系統設計 -> 環境變量 來打開系統環境變量對話框。

  3. 點擊用戶變量中的新建按鈕,然后在變量名中輸入 JAVA_HOME,并在變量值種設置你的 jre 路徑。它看起來應該如下圖:

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

(Java 的路徑和版本可以隨你使用的 Kafka 版本而改變)

  1. 點擊確定按鈕

  2. 在你剛剛打開的“環境變量”對話框中的“系統變量”部分,找到 Path 變量。

  3. 修改路徑,在類似下圖中的已經寫有文字的文本框末尾輸入“;%JAVA_HOME%\bin”。

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

  1. 要確認 Java 的安裝情況,只需要打開 cmd 并輸入“java -version”,你就可以看到你剛剛安裝的 java 版本了。

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

如果你的命令提示符下出現類似上圖的內容,你就可以放心的繼續做后面的步驟了。否則,你需要檢查你的安裝版本是否與操作系統架構(x86,x64)相匹配,或 Path 環境變量是否正確。

b. 安裝及運行 Zookeeper

  1. 打開你的 zookeeper 配置目錄。我的目錄是 C:\zookeeper-3.4.7\conf

  2. 重命名 “zoo_sample.cfg” 為 “zoo.cfg”

  3. 在任何文本編輯器中打開 zoo.cfg,比如使用記事本,不過我比較喜歡 notepad++

  4. 找到并修改 dataDir=/tmp/zookeeper 這段話為 dataDir=C:\zookeeper-3.4.7\data

  5. 就像我們在安裝 Java 時那樣,在系統環境變量中添加條目

    1. 在系統變量中添加 ZOOKEEPER_HOME = C:\zookeeper-3.4.7

    2. 修改 Path 系統變量,添加 ;%ZOOKEEPER_HOME%\bin;

  6. 你可以在 zoo.cfg 文件種修改默認 zookeeper 端口(默認端口為 2181)。

  7. 在一個新的 cmd 中輸入 zkserver 來運行 zookeeper。

  8. 你將看到命令提示符出現類似下圖種的一些細節。

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

恭喜,你的 zookeeper 為已經啟動并運行在 2181 端口上了。

c. 配置 Kafka

  1. 打開你的 Kafka 配置目錄。我的目錄是 C:\kafka_2.11-0.9.0.0\config

  2. 修改“server.properties”文件

  3. 找到并修改“log.dirs=/tmp/kafka-logs”這行為“log.dir= C:\kafka_2.11-0.9.0.0\kafka-logs”

  4. 如果你的 zookeeper 正運行在一些其他的機器或集群上,你可以修改“zookeeper.connect=localhost:2181”為你自定義的 IP 和端口。在這次演示中,我們使用的是同一臺機器,所以不需要修改。另外 Kafka 的端口和 broker.id 也可以在這個文件中進行配置。其他設置不變。

  5. 你的 Kafka 將會在默認的 9092 端口上運行并連接到默認端口為 2181 的 zookeeper 上。

d. 運行 Kafka 服務器

注意:

請確保你的 zookeeper 已經啟動并在啟動 Kafka 服務器之前運行。

  1. 打開 kafka 安裝目錄 C:\kafka_2.11-0.9.0.0\

  2. 按 Shift + 右鍵并選擇“在此處打開命令行窗口”選項來在此處打開一個命令提示符

  3. 現在輸入 .\bin\windows\kafka-server-start.bat .\config\server.properties 并按回車鍵

              不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

  1. 如果一切正常的話,命令提示符的內容看起來應該如下圖

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

  1. 現在你的 Kafka 已經啟動并運行了,所以現在你可以使用 java 或 scala 代碼或在命令提示符中創建 topic 和 produce 或 consume 了。

e. 生成 Kafka 的 Topic

  1. 首先生成一個名為”test“的 Kafka 主題,并且設置復制因子參數為 1,因為我們只有一個 Kafka 服務器正在運行。如果你有一個包含多個 Kafka 服務的集群,你可以增大此參數,以此提高對數據可用性和系統容錯性。

  2. 打開一個命令行窗口,進入到目錄 C:\kafka_2.11-0.9.0.0\bin\windows

  3. 輸入如下命令,并回車。

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

f. 在測試服務器上生成一對生產者和消費者

  1. 打開一個新的命令行窗口,進入到目錄 C:\kafka_2.11-0.9.0.0\bin\windows

  2. 輸入如下命令,啟動一個生產者。kafka-console-producer.bat --broker-list localhost:9092 --topic test”.

  3. 再打開一個新的命令行窗口,同樣進入到目錄C:\kafka_2.11-0.9.0.0\bin\windows

  4. 輸入如下命令,啟動一個消費者。“kafka-console-consumer.bat --zookeeper localhost:2181 --topic test”

  5. 現在你有兩個命令行窗口,如下面兩張圖所示。

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

  1. 在生產者命令行窗口內隨便輸入一段字符,然后回車,你應該能看到同樣的消息出現在消費者的命令行窗口內。

不使用 Cygwin 的情況下在Windows 運行 Apache Kafka

  1. 如果在消費者端能看到你推送的消息,那么你已經成功的安裝了Kafka。

一些有用的命令

  1. 列舉 Topic: kafka-topics.bat --list --zookeeper localhost:2181

  2. 描述 Topic: kafka-topics.bat --describe --zookeeper localhost:2181 --topic [Topic Name]

  3. 從頭讀消息: kafka-console-consumer.bat --zookeeper localhost:2181 --topic [Topic Name] --from-beginning

  4. 刪除 Topic: kafka-run-class.bat kafka.admin.TopicCommand --delete --topic [topic_to_delete] --zookeeper localhost:2181

參考鏈接

  1. http://kafka.apache.org/documentation.html

  2. https://zookeeper.apache.org/doc/trunk/zookeeperStarted.html

結論

我相信,這篇文章會對初/中級開發人員在 Windows 的服務器或者桌面系統上啟動一個 kafka 服務器帶來幫助。

你們的朋友

Gopal Tiwari                                              

License

這篇文章以及相關代碼遵循 The Code Project Open License (CPOL) 協議

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!