1.簡介
Kafka是一種高吞吐量的分布式發布訂閱消息系統。詳細介紹可查閱官網:kafka官網
2.環境搭建
2.1 安裝JDK
下載地址:jre下載
有關jdk的安裝不再贅述。
2.2 安裝Zookeeper
下載地址:https://zookeeper.apache.org/releases.html
下載后,解壓放在目錄D:\bigdata(本文所用的目錄)下,關於zookeeper以及kafka的目錄,路徑中最好不要出現空格,比如D:\Program Files,盡量別用,運行腳本時會有問題。
①進入zookeeper的相關設置所在的文件目錄,例如本文的:D:\bigdata\zookeeper-3.4.10\conf
②將"zoo_sample.cfg"重命名為"zoo.cfg"
③打開zoo.cfg(至於使用什么編輯器,根據自己喜好選即可),找到並編輯:
dataDir=/tmp/zookeeper to D:/bigdata/zookeeper-3.4.10/data或 D:\\bigdata\\zookeeper-3.4.10\\data(路徑僅為示例,具體可根據需要配置)
這里注意,路徑要么是"/"分割,要么是轉義字符"\\",這樣會生成正確的路徑(層級,子目錄)。
④與配置jre類似,在系統環境變量中添加:
a.系統變量中添加ZOOKEEPER_HOME=D:\bigdata\zookeeper-3.4.10
b.編輯系統變量中的path變量,增加%ZOOKEEPER_HOME%\bin
⑤在zoo.cfg文件中修改默認的Zookeeper端口(默認端口2181)
這是本文最終的zoo.cfg文件的內容:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:/bigdata/zookeeper-3.4.10/data
#dataDir=D:\\bigdata\\zookeeper-3.4.10\\data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
⑥打開cmd窗口,輸入zkserver,運行Zookeeper,運行結果如下:
恭喜,Zookeeper已經安裝完成,已在2181端口運行。
2.3 安裝kafka
下載地址:http://kafka.apache.org/downloads
要下載Binary downloads這個類型,不要下載源文件,這種方便使用。下載后,解壓放在D:\bigdata目錄下。
①進入kafka配置文件所在目錄,D:\bigdata\kafka_2.11-0.9.0.1\config
②編輯文件"server.properties",找到並編輯:
log.dirs=/tmp/kafka-logs to log.dirs=D:/bigdata/kafka_2.11-0.9.0.1/kafka-logs 或者 D:\\bigdata\\kafka_2.11-0.9.0.1\\kafka-logs
同樣注意:路徑要么是"/"分割,要么是轉義字符"\\",這樣會生成正確的路徑(層級,子目錄)。錯誤路徑情況可自行嘗試,文件夾名為這種形式:bigdatakafka_2.11-0.9.0.1kafka-logs
③在server.properties文件中,zookeeper.connect=localhost:2181代表kafka所連接的zookeeper所在的服務器IP以及端口,可根據需要更改。本文在同一台機器上使用,故不用修改。
④kafka會按照默認配置,在9092端口上運行,並連接zookeeper的默認端口2181。
2.4 運行kafka
提示:請確保啟動kafka服務器前,Zookeeper實例已經在運行,因為kafka的運行是需要zookeeper這種分布式應用程序協調服務。
①進入kafka安裝目錄D:\bigdata\kafka_2.11-0.9.0.1
②按下shift+鼠標右鍵,選擇"在此處打開命令窗口",打開命令行。
③在命令行中輸入:.\bin\windows\kafka-server-start.bat .\config\server.properties 回車。
④正確運行的情況為:
到目前為止,zookeeper以及kafka都已正確運行。保持運行狀態,不要關閉。
重要(操作日志的處理):
kafka啟動后,如果你去查看kafka所在的根目錄,或者是kafka本身的目錄,會發現已經默認生成一堆操作日志(這樣看起來真心很亂):
而且會不斷生成不同時間戳的操作日志。剛開始不知所措,一番研究后,看了啟動的腳本內容,發現啟動的時候是會默認使用到這個log4j.properties文件中的配置,而在zoo.cfg是不會看到本身的啟動會調用到這個,還以為只有那一個日志路徑:
在這里配置一下就可以了,找到config下的log4j.properties:
將路徑更改下即可,這樣就可以歸檔在一個文件夾下邊了,路徑根據自己喜好定義:
另外如何消除不斷生成日志的問題,就是同一天的不同時間會不停生成。
修改這里,還是在log4j.properties中:
本身都為trace,字面理解為會生成一堆跟蹤日志,將其改為INFO即可。
2.5 創建主題
①創建主題,命名為"test0811",replicationfactor=1(因為只有一個kafka服務器在運行)。可根據集群中kafka服務器個數來修改replicationfactor的數量,以便提高系統容錯性等。
②在D:\bigdata\kafka_2.11-0.9.0.1\bin\windows目錄下打開新的命令行
③輸入命令:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test0811
回車。
該窗口可以關閉。
2.6 創建生產者(producer)和消費者(consumer)
①在D:\bigdata\kafka_2.11-0.9.0.1\bin\windows目錄下打開新的命令行。
②輸入命令,啟動producer:
kafka-console-producer.bat --broker-list localhost:9092 --topic test0811
該窗口不要關閉。
③同樣在該目錄下打開新的命令行。
④輸入命令,啟動consumer:
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test0811
現在生產者、消費者均已創建完成。
⑤在producer命令行窗口中任意輸入內容,回車 在consumer命令行窗口中即可看到相應的內容。
至此,已完成kafka在windows下的安裝和基本的使用。
本人才疏學淺,如有錯誤,還望批評指正。