Kafka學習篇(二)——Kafka環境搭建
- 安裝JDK
- 安裝Kafka
-
- 下載下傳kafka
- 啟動kafka
- Kafka指令
- Kafka配置
安裝JDK
kafka需要JDK的支援,是以第一步是安裝JDK。
安裝JDK1.8
yum install -y java-1.8.0-openjdk.x86_64
安裝完成後可以檢視JDK版本
java -version
安裝Kafka
下載下傳kafka
1、到kafka的官網,去下載下傳想用的kafka包:http://kafka.apache.org/downloads
2、由于項目對方要求使用kafka2.0.0是以下載下傳的是kafka_2.11-2.0.0.tgz
3、将下載下傳好的包上傳到伺服器并且解壓,此處路徑可以自定義,解壓指令:
tar -zxvf kafka_2.11-2.0.0.tgz
4、如果是windows也是同樣的,解壓kafka_2.11-2.0.0.tgz包到自己想要的目錄下。
啟動kafka
1、解壓後如果不想修改預設配置可以直接運作即可使用kafka用戶端
2、啟動kafka先要啟動zookeeper服務,進入剛剛解壓後的kafka目錄
linux版本:
sh bin/zookeeper-server-start.sh config/zookeeper.properties
windows版本,進入解壓後的kafka目錄cmd視窗:
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
3、啟動kafka服務,還在剛剛的kafka解壓後的目錄
linux版本:
sh bin/kafka-server-start.sh config/server.properties
windows版本,進入解壓後的kafka目錄cmd視窗:
bin\windows\kafka-server-start.bat config\server.properties
4、有了啟動怎麼可以沒有關閉
關閉zookeeper指令:
sh bin/zookeeper-server-stop.sh config/zookeeper.properties
關閉kafka指令:
sh bin/kafka-server-stop.sh config/server.properties
5、為了友善啟動,我們建立啟動快捷腳本,vi startkafka.sh,使用這個腳本就不需要啟動zookeeper再啟動kafka,腳本自動把兩個服務都啟動好,腳本中路徑需要自行定義。
#!/bin/sh
#啟動zookeeper
/app/kafka/kafka_2.11-2.0.0/bin/zookeeper-server-start.sh /app/kafka/kafka_2.11-2.0.0/config/zookeeper.properties &
sleep 5 #等5秒後執行
#啟動kafka
/app/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh /app/kafka/kafka_2.11-2.0.0/config/server.properties &
6、為了友善關閉,我們建立關閉快捷腳本,vi stopkafka.sh,腳本中路徑需要自行定義。
#!/bin/sh
#啟動kafka
/app/kafka/kafka_2.11-2.0.0/bin/kafka-server-start.sh /app/kafka/kafka_2.11-2.0.0/config/server.properties &
sleep 3 #等3秒後執行
#啟動zookeeper
/app/kafka/kafka_2.11-2.0.0/bin/zookeeper-server-start.sh /app/kafka/kafka_2.11-2.0.0/config/zookeeper.properties &
7、有了啟動/關閉腳本後隻需要執行 sh startkafka.sh或者sh stopkafka.sh即可啟動/關閉kafka以及zookeeper
Kafka指令
以下指令全部在kafka根目錄下執行
1、建立topic
sh bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hello
2、檢視topic
sh bin/kafka-topics.sh --zookeeper localhost:2181 --list
3、删除topic
sh bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic hello
4、建立生産者producer
sh bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello
5、另起建立消費者consumer
sh bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hello --from-beginning
6、此時在生産者視窗推送的内容能被消費者視窗中接收
Kafka配置
在伺服器中搭建了Kafka後使用Java開發Kafka後報錯
經過分析後發現是由于Kafka用戶端配置問題導緻,需要修改Kafka用戶端配置的IP位址,修改listeners的ip位址, vi config/server.properties
listeners=PLAINTEXT://172.20.240.27:9092
advertised.listeners=PLAINTEXT://172.20.240.26:9092
重新開機後外網可以向伺服器生産以及消費。
除此外zookeeper配置可以修改config/zookeeper.properties
kafaka配置可以修改config/server.properties
具體配置可以參考官方文檔。比較常見的可以修改日志位址等内容