Windows環境安裝kafka(一)


前言

注意事項:

需要有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推送並消費數據。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM