1. 程式人生 > 其它 >kafka的安裝過程

kafka的安裝過程

安裝kafka需要經歷3個過程

  1. 安裝JK
  2. 安裝zookeeper
  3. 安裝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都有唯一的brokerid
  • log.dirs 資料存放的目錄
  • zookeeper.connect zookeeper連線池地址資訊
  • delete.topic.enable 是否直接刪除topic
  • host.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