Kafka叢集搭建與配置
- 準備工作
- 安裝java環境
- 搭建zookeeper叢集
- 搭建kafka叢集
1. 準備工作
1.1 安裝包
1.2 準備至少3臺主機(ubuntu系統)
如果沒有物理機,也可以弄3臺虛擬機器。ubuntu系統不會安裝的話可以自己百度哦,這裡就不細說了。
作者用的是虛擬機器,下面是3臺電腦的配置
主機名 | IP地址 | 硬體配置 |
---|---|---|
kafka-1 | 192.168.1.42 | 4CPU、4G記憶體、128G儲存 |
kafka-2 | 192.168.1.41 | 4CPU、4G記憶體、128G儲存 |
kafka-3 | 192.168.1.47 | 4CPU、4G記憶體、128G儲存 |
2. 安裝JAVA環境
準備安裝包 jdk-8u162-linux-x64.tar
在每臺主機下執行下面步驟:
將安裝包移到/usr/local目錄下
mv jdk-8u162-linux-x64.tar.gz /usr/local
解壓檔案
tar -zxvf jdk-8u162-linux-x64.tar.gz
重新命名資料夾為java
mv jdk-8u162-linux-x64 java
用vim開啟/etc/profile檔案(Linux下配置系統環境變數的檔案)
vim /etc/profile
按i進入編輯模式,在檔案末尾新增如下JAVA環境變數
export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
新增環境變數後,結果如下圖所示,按 esc 退出編輯模式,然後輸入:+wq ,按回車儲存(也可以按shift + zz 進行儲存)。

配置環境變數
最後,需要讓該環境變數生效,執行如下程式碼:
source /etc/profile
檢驗JAVA是否安裝成功
echo $JAVA_HOME# 檢驗變數值 java -version java javac
如果設定正確的話,java -version 會輸出 java 的版本資訊,java 和 javac 會輸出命令的使用指導。
3. 搭建zookeeper叢集
準備安裝包 zookeeper-3.4.12.tar
在每臺主機上執行下面步驟:
將安裝包移到/usr/local目錄下
mv zookeeper-3.4.12.tar /usr/local
解壓檔案
tar -zxvf zookeeper-3.4.12.tar
重新命名資料夾為zookeeper
mv zookeeper-3.4.12 zookeeper
配置zookeeper環境變數,首先開啟profile檔案
vim /etc/profile
按i進入編輯模式,在檔案末尾新增zookeeper環境變數
#set zookeeper environment export ZK_HOME=/usr/local/zookeeper export PATH=$ZK_HOME/bin:$PATH
儲存檔案後,讓該環境變數生效
source /etc/profile
開啟zookeeper配置檔案
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg vim /usr/local/zookeeper/zoo.cfg
修改zookeeper配置檔案
#修改資料資料夾路徑 dataDir=/usr/local/zookeeper/data #在檔案末尾新增 server.1=192.168.1.42:2888:3888 server.2=192.168.1.41:2888:3888 server.3=192.168.1.47:2888:3888 #其它不變
建立資料資料夾
mkdir /usr/local/zookeeper/data
建立myid檔案
mkdir /usr/local/zookeeper/data/myid
在myid檔案中新增本機的 server ID,在本例中對應關係如下
主機名 | IP地址 | zookeeper | myid |
---|---|---|---|
kafka-1 | 192.168.1.42 | server.1 | 1 |
kafka-2 | 192.168.1.41 | server.2 | 2 |
kafka-3 | 192.168.1.47 | server.3 | 3 |
所以,在kafka-1中執行下面命令
echo "1" > /usr/local/zookeeper/data/myid#kafka-1主機myid
在kafka-2中執行下面命令
echo "2" > /usr/local/zookeeper/data/myid#kafka-2主機myid
在kafka-3中執行下面命令
echo "3" > /usr/local/zookeeper/data/myid#kafka-3主機myid
在每臺電腦上啟動zookeeper
/usr/local/zookeeper/bin/zkServer.sh start
全部啟動後,檢視啟動結果
/usr/local/zookeeper/bin/zkServer.sh status

kafka-1啟動結果

kafka-2啟動結果

kafka-3啟動結果
4. 搭建kafka叢集
準備安裝包 kafka_2.11-2.0.0 .tgz
在每臺主機上執行下面步驟:
將安裝包移到/usr/local目錄下
mv kafka_2.11-2.0.0 .tgz /usr/local
解壓檔案
tar -zxvf kafka_2.11-2.0.0 .tgz
重新命名資料夾為zookeeper
mv kafka_2.11-2.0.0 kafka
配置kafka環境變數,首先開啟profile檔案
vim /etc/profile
按i進入編輯模式,在檔案末尾新增kafka環境變數
#set kafka environment export KAFKA_HOME=/usr/local/kafka PATH=${KAFKA_HOME}/bin:$PATH
儲存檔案後,讓該環境變數生效
source /etc/profile
在kafka-1主機中修改server.properties配置檔案
開啟配置檔案
vim /usr/local/kafka/config/server.properties
修改配置如下(IP地址應該根據實際情況填寫)
broker.id=1 listeners=PLAINTEXT://192.168.1.42:9092 zookeeper.connect=192.168.1.41:2181,192.168.1.42:2181,192.168.1.47:2181
在kafka-2主機中修改server.properties配置檔案
開啟配置檔案
vim /usr/local/kafka/config/server.properties
修改配置如下(IP地址應該根據實際情況填寫)
broker.id=2 listeners=PLAINTEXT://192.168.1.41:9092 zookeeper.connect=192.168.1.41:2181,192.168.1.42:2181,192.168.1.47:2181
在kafka-3主機中修改server.properties配置檔案
開啟配置檔案
vim /usr/local/kafka/config/server.properties
修改配置如下(IP地址應該根據實際情況填寫)
broker.id=3 listeners=PLAINTEXT://192.168.1.47:9092 zookeeper.connect=192.168.1.41:2181,192.168.1.42:2181,192.168.1.47:2181
啟動kafka(要確保zookeeper已啟動)
在每臺主機上分別啟動kafka
/usr/local/kafka/bin/kafka-server-start.sh -daemon config/server.properties
在其中一臺虛擬機器(192.168.1.47)建立topic
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.1.47:2181 --replication-factor 3 --partitions 1 --topic test-topic
檢視建立的topic資訊
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.1.47:2181 --topic test-topic
結果如下圖所示:

topic資訊
搭建成功啦