上傳Kafka壓縮包
- 將kafka_2.12-3.6.1.tgz檔案上傳到三臺虛擬機器的/opt/software目錄中
解壓Kafka壓縮包
- 進入/opt/software目錄
cd /opt/software
- 解壓縮檔案到指定目錄
tar -zxvf kafka_2.12-3.6.1.tgz -C /opt/module/
- 進入/opt/module目錄
cd /opt/module
- 修改檔案目錄名稱
mv kafka_2.12-3.6.1/ kafka
修改配置檔案
- 進入cd /opt/module/kafka/config檔案目錄
cd /opt/module/kafka/config
- 修改配置檔案
vim server.properties
- 輸入以下內容:
點選檢視程式碼
#broker的全域性唯一編號,每個服務節點不能重複,只能是數字。
broker.id=1
#broker對外暴露的IP和埠 (每個節點單獨配置)
advertised.listeners=PLAINTEXT://kafka-broker1:9092
#kafka執行日誌(資料)存放的路徑,路徑不需要提前建立,kafka自動幫你建立,可以配置多個磁碟路徑,路徑與路徑之間可以用","分隔
log.dirs=/opt/module/kafka/datas
#配置連線Zookeeper叢集地址(在zk根目錄下建立/kafka,方便管理)
zookeeper.connect=kafka-broker1:2181,kafka-broker2:2181,kafka-broker3:2181/kafka
分發kafka軟體
- 進入 /opt/module目錄
cd /opt/module
- 執行分發指令
xsync kafka
- 按照上面的配置檔案內容,在每一個Kafka節點進行配置,請注意配置檔案中第一二條的對應主機號
vim /opt/module/kafka/config/server.properties
配置環境變數
- 修改 /etc/profile.d/my_env.sh檔案
vim /etc/profile.d/my_env.sh
- 新增內容
點選檢視程式碼
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
- 讓環境變數生效
source /etc/profile.d/my_env.sh
- 分發環境變數,並讓環境變數生效
xsync /etc/profile.d/my_env.sh
- 每個節點執行重新整理操作
source /etc/profile.d/my_env.sh
啟動Kafka
- 啟動前請先啟動ZooKeeper服務
- 進入/opt/module/kafka目錄
cd /opt/module/kafka
- 執行啟動指令
bin/kafka-server-start.sh -daemon config/server.properties
- 執行關閉指令
bin/kafka-server-stop.sh
分發軟體
- 進入/opt/module路徑
cd /opt/module
- 呼叫分發指令碼將本機得ZooKeeper安裝包分發到其他兩臺機器
xsync kafka
- 分別將不同虛擬機器/opt/module/kafka/zkData目錄下myid檔案進行修改
vim /opt/module/kafka/config/server.properties
分發指令碼可參考此部落格https://i.cnblogs.com/posts/edit;postId=18145758
啟停指令碼
- 進入/root/bin目錄
cd /root/bin
- 建立kfk.sh指令碼檔案
vim kfk.sh
- 在指令碼中增加內容:
點選檢視程式碼
#!/bin/bash
case "$1" in
start)
for i in kafka-broker1 kafka-broker2 kafka-broker3
do
echo " --------啟動 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties" && echo "$i Kafka started" || echo "Failed to start $i Kafka"
done
;;
stop)
for i in kafka-broker1 kafka-broker2 kafka-broker3
do
echo " --------停止 $i Kafka-------"
# 這裡需要一個適當的方法來停止 Kafka 服務
# ssh $i "pkill -f '/opt/module/kafka/bin/kafka.Kafka'"
ssh $i "/path/to/your/kafka-stop-script.sh" && echo "$i Kafka stopped" || echo "Failed to stop $i Kafka"
done
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
- 給檔案授權
chmod 777 kfk.sh
- 指令碼呼叫方式
- 啟動kafka
kfk.sh start
- 停止Kafka
kfk.sh stop