kafka集羣搭建
集羣設置
主機3臺 已配置好ssh免密,防火牆已關閉
master 192.168.1.101
slave1 192.168.1.102
slave2 192.168.1.103
準備
- 安裝ZooKeeper
kafka集羣是基於Zookeeper的,所以必須先安裝好zookeeper集羣
參考連接 Zookeeper集羣搭建 - 安裝Java 環境
參考鏈接 linux下配置Java環境
下載
配置&分發
以master節點爲例,其他節點以此類推
上傳下載好的壓縮包至相應的服務器
我們放在/home/ubuntu/data/kafka
目錄下
- 解壓
tar -zxvf kafka_2.11-1.0.0.tgz -C /home/ubuntu/data/kafka/
- 修改配置
進入解壓後的目錄
cd /home/ubuntu/data/kafka
#創建日誌文件夾
mkdir kafkaLog
修改配置文件
cd /home/ubuntu/data/kafka/config
vim server.properties
修改以下內容
broker.id=1
listeners=PLAINTEXT://192.168.1.101:9092
advertised.listeners=PLAINTEXT://192.168.1.101:9092
log.dirs=/home/ubuntu/data/kafka/kafkaLog
zookeeper.connect=192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181
解釋:
broker.id :在Kafka集羣中,每個broker都有一個唯一的id值用來區分彼此。必須配置
listeners :監聽器,默認值PLAINTEXT://:9092,表示監聽本機(127.0.0.1),這裏必須要配置爲本機的ip地址,否則在使用java發送消息時會報錯
advertised.listeners :同listeners一樣配置,必須要配置爲本機的IP地址
log.dirs :日誌文件的存放地址,必須配置
zookeeper.connect :zokeeper集羣的服務地址,必須配置
- 分發
cd /home/ubuntu/data scp -r kafka/ root@slave1:$PWD scp -r kafka/ root@slave2:$PWD
分別修改配置文件中的broker.id的值,因爲每臺機器的broker.id在集羣中必須是唯一的
分別修改配置文件中的listeners和advertised.listeners的值,比須要修改爲對應機器的IP地址
配置環境變量
每臺機器都要配置
進入當前用戶目錄
cd ~
vim .bashrc
在文件尾端添加如下內容
export export KAFKA_HOME=/home/ubuntu/data/kafka
export PATH=$PATH:$KAFKA_HOME/bin
保存退出,然後激活
source .bashrc
啓動&停止
啓動:
kafka-server-start.sh 配置文件路徑
如:
kafka-server-start.sh /home/ubuntu/data/kafka/config/server.properties
停止:
kafka-server-stop.sh
以守護進程方式啓動:
kafka-server-start.sh -daemon /home/ubuntu/data/kafka/config/server.properties 1>/dev/null 2>&1 &