如何在Windows上搭建并運行Kafka
譯文【51CTO.com快譯】本文向您詳細介紹如何在Windows操作系統上,配置和啟動Apache Kafka服務器。與此同時,本指南也會提供對于Java和Apache ZooKeeper的配置與說明。
眾所周知,Apache Kafka是一種快速、且具有可擴展性的消息傳遞隊列。它能夠在讀寫上下文的同時,處理與各種I/O相關的大流量負載。您可以通過鏈接:http://kafka.apache.org/,來了解Kafka的相關信息與知識。而作為可靠的分布式協調工具,Apache Kafka需要有一個可運行的ZooKeeper實例(譯者注:ZooKeeper是一款分布式的協調服務,它為分布式應用提供了一致的服務接口)。有關ZooKeeper的信息,您可以通過https://zookeeper.apache.org/,來進一步了解。
相關資源
針對下文將討論和涉及的內容,我錄制了一段視頻(請參見 https://youtu.be/OJKesEpO6ok),以幫助您通過動手實驗的方式,來實現在Windows上搭建Kafka。同時,我在GitHub上創建了一系列的Spark-Scala實用程序(請參見https://github.com/gopal-tiwari),供您深入參考和練習。
另外,下面是本文所涉及到的、您需要提前準備并下載好的各種文件:
- 根據操作系統和CPU架構的不同,您可以從http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html處下載服務器的jre。
- 請從http://www.7-zip.org/download.html處下載并安裝7-zip。
- 請從http://zookeeper.apache.org/releases.html處下載ZooKeeper,并使用7-zip予以提取。
- 請從http://kafka.apache.org/downloads.html處下載Kafka,并使用7-zip予以提取。
在下文中,我們將假設ZooKeeper和Kafka都已被解壓縮,并存放在了C盤驅動器之中,當然您也可以將它們解壓到其他任何位置。
另外,考慮到該實驗只會用到單節點的ZooKeeper實例,因此我們只使用了未與Kafka一起打包的ZooKeeper。同樣如果您愿意,可以使用位于kafka\bin\windows 目錄中的Kafka安裝包,它已經打包好了Zookeeper。
安裝
A. JDK設置
1. 在雙擊JRE安裝程序后,您可以通過單擊“Install”來繼續,當然也可以點擊“Change destination folder”復選框。
2. JDK的默認安裝路徑為:C:\Program Files\Java\jre1.8.0_xx。不過,您也可以修改到諸如:C:\Java\jre1.8.0_xx等目標目錄下,然后單擊“下一步”。
3. 現在,您可以通過依次點擊:控制面板-> 系統-> 高級系統設置-> 環境變量,來設置與變量相關的系統運行環境。
4. 如下圖所示,在“User variables”部分里,您可以點擊“New User Variable”,然后在彈出的對話框中輸入“JAVA_HOME”作為“Variable name”,并且在“Variable value”中輸入自己的jre所在路徑。
(注:Java的具體路徑和版本,可能會根據您所使用的Kafka版本而有所不同)
5. 現在直接單擊“OK”。
6. 在“System Variable”部分里,定位并打開“Environment Variables”對話框。
7. 現在編輯“Path”。如下圖所示,在“Variable value”的已有文本末尾,請鍵入“;%JAVA_HOME%\bin”。
8. 為了確認Java是否已安裝,您可以打開“cmd”,鍵入“java –version”。此時,您應該能夠看到剛才安裝過的Java版本。
如果您的命令提示符顯示與上圖基本相似的話,那么一切準備就緒。否則,您需要重新檢查自己的設置,是否與當前的操作系統架構(如x86或x64)相匹配,或者環境變量路徑是否正確。
B. ZooKeeper的安裝
1. 讓我們將目光轉到ZooKeeper的配置目錄上。在此,我使用的是:“C:\zookeeper-3.4.7\conf”。
2. 我將文件“zoo_samplep.cfg”重命名為“zoo.cfg”。
3. 請使用諸如記事本之類的文本編輯器打開zoo.cfg,在此我用的是Notepad++。
4. 查找“dataDir=/tmp/zookeeper”字段,并修改“C:\zookeeper-3.4.7\data”。
5. 如上面對Java設置的那樣,我們在系統環境變量中再添加一個條目。
a. 將“ZOOKEEPER_HOME = C:\zookeeper-3.4.7”添加到系統變量(System Variables)中。
b. 編輯名為“Path”的系統變量,添加“;%ZOOKEEPER_HOME%\bin”。
6. 您可以將zoo.cfg文件的默認ZooKeeper端口改為其他,其默認端口為2181。
7. 打開一個新的cmd,鍵入zkserver,以運行ZooKeeper。
8. 您將能夠看到包含有如下詳細信息的命令提示符。
現在,您的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:2181”改為目標IP地址和端口號。在此,我們使用的是同一臺機器,因此沒有必要做任何改變。此外,Kafka的端口號和broker.id也可以被適當地進行配置。而其他的設置項請保持原樣。
5. 在本例中,我們的Kafka將在默認端口9092上運行,同時會連接到ZooKeeper的2181號默認端口上。
D. 運行Kafka服務器
重要提示:在啟動Kafka服務器之前,請確保您的ZooKeeper實例已事先啟動并運行著。
1. 請跳轉到Kafka的安裝目錄,此處為:C:\kafka_2.11-0.9.0.0\。
2. 通過按住shift并右鍵單擊,以打開命令提示符,并選擇“在此處打開命令窗口”的選項。
3. 如下圖所示,請鍵入“.\bin\windows\kafka-server-start.bat .\config\server.properties bat”,并回車。
4. 如果一切正常的話,您的命令提示符將會出現如下信息:
5. 至此,您的Kafka服務器已經啟動并運行起來了,您可以繼續創建用于存儲消息的各種topic(主題)。此外,您也可以通過Java、Scala代碼、或直接在命令提示符里產生或使用數據。
E. 創建Topics
1. 由于只有一個Kafka服務器正在運行,因此我們只需創建一個名為“test”、且replication factor(復制因子)為1的topic便可。當然,如果您有一個運行著多個Kafka服務器的集群,那么也可以相應地增加replication factor,以提高數據的可用性,并充當可容錯的系統。
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”,然后回車。
F. 為測試服務器創建Producer和Consumer
1. 請在C:\kafka_2.11-0.9.0.0\bin\windows處再打開一個新的命令提示符。
2. 請鍵入命令:“kafka-console-producer.bat --broker-list localhost:9092 --topic test”,以啟動一個producer。
3. 同樣在C:\kafka_2.11-0.9.0.0\bin\windows處打開另一個新的命令提示符。
4. 請鍵入命令:“kafka-console-consumer.bat --zookeeper localhost:2181 --topic test”,以啟動一個consumer。
5. 上述兩個命令提示的截圖,如下所示:
6. 現在,您可以在producer的命令提示符中鍵入任意內容,并按回車;那么您應該能夠在另一個命令提示符中看到該消息的相同內容。
7. 可見,如果您能夠在consumer端看到推送過來的消息,那么您就完成了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
原文標題:Setting Up and RunningApache Kafka on Windows OS,作者:Gopal Tiwari
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】