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