kafka的安裝過程
安裝kafka需要經歷3個過程
- 安裝JK
- 安裝zookeeper
- 安裝kafka
一、JDK安裝
第一步:下載jdk(這裡以java11為例)
下載地址:https://www.oracle.com/java/technologies/downloads/#java11
第二步:檢查系統中是否已經安裝過openjdk,如果有將其刪除
rpm -qa | grep java
yum remove -y java-*
第三步:將jdk上傳到主機,並解壓縮到指定目錄 /usr/local
tar zxvf jdk-11.0.12_linux-x64_bin.tar.gz -C /usr/local/
第四步:配置環境變數並重新整理
# 編輯配置檔案
vi /etc/profile.d/jdk11.sh
# 寫入如下內容
export JAVA_HOME=/usr/local/jdk-11.0.12
export CLASS_PATH=.:$JAVA_HOME/lib/:$JAVA_HOME/bin/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# 載入配置檔案
source /etc/profile.d/jdk11.sh
第五步:測試安裝
java -version
二、zookeeper安裝
2.1 單機部署zookeeper
第一步:下載zookeeper安裝包(以3.6.0為例)
下載地址:http://archive.apache.org/dist/zookeeper/
第二步:上傳到主機,並解壓到指定目錄 /opt/zookeeper
tar zxvf apache-zookeeper-3.6.0-bin.tar.gz -C /opt/
mv /opt/apache-zookeeper-3.6.0-bin/ /opt/zookeeper
第三步:在/opt/zookeeper/ 目錄下建立資料檔案目錄和日誌檔案目錄
mkdir /opt/zookeeper/zkData
mkdir /opt/zookeeper/zkLog
第四步:修改配置檔案
# 複製一份配置檔案並修改 cd /opt/zookeeper/conf/ cp zoo_sample.cfg zoo.cfg vi zoo.cfg # 修改如下內容 dataDir=/opt/zookeeper/zkData dataLogDir=/opt/zookeeper/zkLog
第五步:測試安裝
cd /opt/zookeeper/bin/
# 啟動zookeeper
./zkServer.sh start
# 檢視程序是否啟動
jps
# 檢視狀態
./zkServer.sh status
# 停止zookeeper
./zkServer.sh stop
2.2 部署zookeeper叢集
規劃:使用三臺主機搭建zookeeper叢集
主機名 ip地址
server1 192.168.7.11/24
server2 192.168.7.12/24
server3 192.168.7.13/24
向 /etc/hosts檔案中新增如下內容
192.168.7.11 server1
192.168.7.12 server2
192.168.7.13 server3
第一步:三臺主機分別按照上面 2.2 步驟正確安裝zookeeper
第二步:配置伺服器編號
server1:
echo 1 > /opt/zookeeper/zkData/myid
server2:
echo 2 > /opt/zookeeper/zkData/myid
server3:
echo 3 > /opt/zookeeper/zkData/myid
第三步:配置zoo.cfg檔案
分別向三臺主機的zoo.cfg檔案中新增如下內容
vi /opt/zookeeper/conf/zoo.cfg
# 新增如下內容
server.1=192.168.7.11:2888:3888
server.2=192.168.7.12:2888:3888
server.3=192.168.7.13:2888:3888
- 配置引數解讀 server.A=B:C:D
- A:一個數字表示第幾號伺服器,myid 檔案中的值就是A的值
- B:伺服器ip地址
- C:叢集中與leader伺服器交換資訊的埠
- D:選舉時專用埠;萬一叢集中的leader掛了,需要一個埠用來重新選舉
第四步:分別啟動三臺主機的zookeeper,並檢視狀態
cd /opt/zookeeper/bin/
# 啟動zookeeper
./zkServer.sh start
# 檢視程序是否啟動
jps
# 檢視狀態
./zkServer.sh status
三、安裝kafka
3.1 單機部署kafka
第一步:下載kafka安裝包(以kafka_2.12-2.2.0為例)
下載地址:http://kafka.apache.org/downloads
第二步:解壓到指定目錄 /opt/kafka
tar -xvf kafka_2.12-2.2.0.tar -C /opt
mv /opt/kafka_2.12-2.2.0 /opt/kafka
第三步:修改核心配置檔案 /opt/kafka/config/server.properties
修改如下6處:
broker.id
配置的是叢集環境,要求每臺kafka都有唯一的brokeridlog.dirs
資料存放的目錄zookeeper.connect
zookeeper連線池地址資訊delete.topic.enable
是否直接刪除topichost.name
主機名稱- 修改:
listeners=PLATNTEXT://server1:9092
vi /opt/kafka/config/server.properties
# 修改以下內容
broker.id=1
listeners=PLAINTEXT://server1:9092
log.dirs=/opt/kafka/data
zookeeper.connect=server1:2181,server2:2181,server3:2181
# 檔案尾部新增以下內容
delete.topic.enable=true
host.name=server1
# 建立資料存放目錄
mkdir -p /opt/kafka/data
第四步:測試安裝
cd /opt/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties
jps
./kafka-server-stop.sh
3.2 部署kafka叢集
第一步:分別將server1的 /opt/kafka 目錄分發給server2和server3
cd /opt
scp -r kafka/ server2:$PWD
scp -r kafka/ server2:$PWD
第二步:server2與server3修改配置檔案 server.properties
server2
vi /opt/kafka/config/server.properties
# 修改以下內容
broker.id=2
listeners=PLAINTEXT://server2:9092
host.name=server2
server3
vi /opt/kafka/config/server.properties
# 修改以下內容
broker.id=3
listeners=PLAINTEXT://server3:9092
host.name=server3
第三步:分別啟動三臺主機的kafka
cd /opt/kafka/bin
./kafka-server-start.sh -daemon ../config/server.properties
jps
第四步:測試部署結果
登入zookeeper客戶端,檢視/brokers/ids
cd /opt/zookeeper/bin/
zkCli.sh
# 查詢結果如下:
[zk: localhost:2181(CONNECTED) 0] ls /brokers/ids
[1, 2, 3]
[zk: localhost:2181(CONNECTED) 1] quit