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檔案的内容:
[plain] view plain copy
- # 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下的安裝和基本的使用。
轉載自: https://blog.csdn.net/u010283894/article/details/77106159
按照原作者的一套做下來很順利,中間隻遇到一個問題(類無法加載的問題),在我的另一篇博文中講到了,作者棒棒哒