前言
注意事項:
需要有jdk,jdk8以上。配置好環境變量。
參看鏈接:https://blog.csdn.net/weixin_38004638/article/details/91893910
一、安裝zookeeper
1、下載zookeeper
官網:https://zookeeper.apache.org/
https://zookeeper.apache.org/releases.html
http://www.apache.org/dyn/closer.cgi/
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
- 注意:下載的文件解壓不了,換一個,說明下載的不是安裝包。
2、 解壓並進入ZooKeeper目錄,如:F:\zookeeper-3.4.5\conf
- 注意:ZooKeeper的版本不要太高,可能jdk8不太支持,反正我本地剛開始用的zookeeper-3.4.10.tar.gz,啟動失敗。
3、 將“zoo_sample.cfg”重命名為“zoo.cfg”
4、 打開“zoo.cfg”找到並編輯dataDir=F:\\zookeeper-3.4.5\\tmp(必須以\\分割)
5、 添加系統變量:ZOOKEEPER_HOME=F:\zookeeper-3.4.5
6、 編輯path系統變量,添加路徑:%ZOOKEEPER_HOME%\bin
7、 在zoo.cfg文件中修改默認的Zookeeper端口(默認端口2181)
8、 打開新的cmd,輸入“zkServer“,運行Zookeeper
9、 命令行提示如下:說明本地Zookeeper啟動成功
- 注意:不要關了這個窗口
二、本地安裝kafka
1、 下載安裝包
http://kafka.apache.org/downloads
- 注意1:要下載二進制版本
- 注意2:版本不要太高,原來用的最新版本,啟動失敗。后來改用了kafka_2.12-0.11.0.0.tgz才啟動成功。
2、 解壓並進入Kafka目錄,筆者:D:\Kafka\kafka_2.12-0.11.0.0
3、 進入config目錄找到文件server.properties並打開
4、 找到並編輯log.dirs=D:\Kafka\kafka_2.12-0.11.0.0\kafka-logs
5、 找到並編輯zookeeper.connect=localhost:2181
6、 Kafka會按照默認,在9092端口上運行,並連接zookeeper的默認端口:2181
7、 進入Kafka安裝目錄F:\kafka_2.12-0.11.0.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,(win10在文件路徑輸入cmd,按回車)輸入:
.\bin\windows\kafka-server-start.bat .\config\server.properties
或
bin\kafka-server-start.sh config\server.properties
- 注意1:我們用第一行。
出現如下信息,表示啟動成功。
- 注意1:在執行命令時,出現如下報錯,
命令語法不正確。 Exception in thread "main" java.lang.UnsupportedClassVersionError: kafka/Kafka : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
因為本地配置的java環境變量為JDK7。修改成jdk8后,問題解決。
- 注意2:在第一次啟動成功后,安裝路徑下會出現如下文件:
當關掉kafka再次啟動時,會提示該文件被占用,導致啟動失敗,解決方案:直接刪掉該文件,重新啟動。
- 注意3:不要關了這個窗口,啟用Kafka前請確保ZooKeeper實例已經准備好並開始運行
三、測試
注意:(linux直接在bin目錄下.sh,windows需要進入bin\winndows下的.bat操作kafka。)
1、 創建主題
進入Kafka安裝目錄D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,(win10在文件路徑輸入cmd,按回車)輸入:
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
出現如下信息,標識創建成功:
2、查看主題輸入
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
3、 創建生產者
進入Kafka安裝目錄D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,輸入:
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test
- 注意:不要關了這個窗口
4、 創建消費者
進入Kafka安裝目錄D:\Kafka\kafka_2.12-0.11.0.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,輸入:
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
- 注意:暫時不知道為啥漢語的報錯啦。
四、安裝中遇到的問題
1、jdk版本太低;
2、下載不了zookeeper安裝包;
3、zookeeper啟動失敗;
4、kafka啟動失敗;
5、java程序向本地kafka的主題推送數據失敗;
6、操作日志的處理:
kafka啟動后,如果你去查看kafka所在的根目錄,或者是kafka本身的目錄,會發現已經默認生成一堆操作日志(這樣看起來真心很亂):
而且會不斷生成不同時間戳的操作日志。剛開始不知所措,一番研究后,看了啟動的腳本內容,發現啟動的時候是會默認使用到這個log4j.properties文件中的配置,而在zoo.cfg是不會看到本身的啟動會調用到這個,還以為只有那一個日志路徑:
在這里配置一下就可以了,找到config下的log4j.properties:
將路徑更改下即可,這樣就可以歸檔在一個文件夾下邊了,路徑根據自己喜好定義:
另外如何消除不斷生成日志的問題,就是同一天的不同時間會不停生成。
修改這里,還是在log4j.properties中:
本身都為trace,字面理解為會生成一堆跟蹤日志,將其改為INFO即可。
后語
以上就是在windows環境下安裝kafka並進行簡單測試的步驟。
下面研究下:
window安裝kafka客戶端;
在java程序中創建生產者與消費者,向kafka推送並消費數據。