kafka在windows下的安裝與配置html
By: 授客 QQ:1033553122apache
1.測試環境................................................................................................................. bootstrap
2.安裝JAVA JDK........................................................................................................ windows
3.安裝zookeeper...................................................................................................... 服務器
4.安裝KafKa.............................................................................................................. eclipse
5.測試......................................................................................................................... ide
1.測試環境測試
JDK 1.8.0_121spa
zookeeper-3.4.13.tar.gz日誌
下載地址1:
http://zookeeper.apache.org/releases.html#download
https://www.apache.org/dyn/closer.cgi/zookeeper/
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
下載地址2:
https://pan.baidu.com/s/1dnBgHvySE9pVRZXJVmezyQ
kafka_2.12-2.1.0.tgz
下載地址1:
http://kafka.apache.org/downloads.html
下載地址2:
https://pan.baidu.com/s/1VnHkJgy4iQ73j5rLbEL0jw
2.安裝JAVA JDK
略
3.安裝zookeeper
1)解壓下載的軟件包zookeeper-3.4.13.tar.gz 至目標目錄(例中爲:D:\Program Files\zookeeper-3.4.13)
2)修改配置文件
進入conf目錄(例中爲:D:\Program Files\zookeeper-3.4.13\conf), 複製「zoo_sample.cfg」爲「zoo.cfg」文件,編輯zoo.cfg,
查找並設置dataDir,設置數據存儲目錄,以下:
dataDir=D:\\Program Files\\zookeeper-3.4.13\\tmpzookeeper
查找並設置clientPort(有必要的話),設置客戶端鏈接端口,默認端口2181,以下:
clientPort=2181
3)配置系統環境變量
添加系統環境變量:ZOOKEEPER_HOME,設置對應值(例中配置:ZOOKEEPER_HOME= D:\Program Files\zookeeper-3.4.13\
編輯path系統變量,添加路徑:%ZOOKEEPER_HOME%\bin
4)驗證
打開cmd控制檯窗口,輸入「zkServer「,運行Zookeeper
4.安裝KafKa
1) 解壓kafka_2.12-2.1.0.tgz至目標目錄(例中爲:D:\kafka_2.12-2.1.0
2) 修改配置
進入到配置目錄(例中爲:D:\kafka_2.12-2.1.0\config),編輯server.properties文件,
查找並設置log.dirs,配置日誌目錄,例中配置以下:
log.dirs=D:\\kafka_2.12-2.1.0\\tmp\\kafka-logs
查找並設置zookeeper.connect,配置zookeeper鏈接字符串,格式:ip1:端口1,ip2:端口2,……,ipN:端口N,好比127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002,每對ip和端口分別表明一個zookeeper服務器,kafka會按這裏的配置去鏈接zookeeper,例中配置以下:
zookeeper.connect=127.0.0.1:2181
查找並設置listener,配置監聽端口,格式:listeners = listener_name://host_name:port,供kafka客戶端鏈接用的ip和端口,例中配置以下:
listeners=PLAINTEXT://127.0.0.1:9092
3)啓動kafka
進入到kafka解壓目標目錄(bin目錄的父目錄),執行 .\bin\windows\kafka-server-start.bat .\config\server.properties,啓動kafka,以下:
實踐過程當中,執行命令後有遇到如下問題:
問題:
.\bin\windows\kafka-server-start.bat .\config\server.properties
此時不該有 \myeclipse\MyEclipse。
解決方法:
去掉我本機以前配置的一個環境變量(TESTNG_HOME=D:\Program Files (x86)\myeclipse\MyEclipse 10\dropins\org.testng.eclipse_6.8.6.20130607_0745\lib\testng.jar
)後搞定
問題:
.\bin\windows\kafka-server-start.bat ..\config\server.properties
命令語法不正確。
錯誤: 找不到或沒法加載主類 Files\Java\jdk1.8.0_121\lib\dt.jar;D:\Program
解決方法:
編輯D:\kafka_2.12-2.1.0\bin\windows\kafka-run-class.bat文件,
找到
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
替換這裏的%CLASSPATH % 爲 "%CLASSPATH %"
5.測試
1)建立主題
.\bin\windows\kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 4 --topic MY_TOPIC1
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic "MY_TOPIC1".
.\bin\windows\kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 4 --topic MY_TOPIC2
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic "MY_TOPIC2".
2)查看建立的主題
.\bin\windows\kafka-topics.bat --zookeeper 127.0.0.1:2181 --list
MY_TOPIC1
MY_TOPIC2
2)生產消息
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic MY_TOPIC1
>Hello, 2019
>Hello,2020
>Hello,2021
3) 消費消息
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic MY_TOPIC1 --from-beginning
Hello, 2019
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic MY_TOPIC1 --group MY_GROUP1
Hello,2020
D:\kafka_2.12-2.1.0>.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic MY_TOPIC1 --group MY_GROUP2
Hello,2021
說明:
--bootstrap-server 指定須要鏈接的服務器
--group 指定消費者所屬消費組
--topic 指定消費者要消費的主題
--from-beginning 從頭開始接收數據,能夠理解爲offset爲0
注:實踐中,生產每條消息前,僅開啓一個消費者客戶端進行消費