1. 程式人生 > 實用技巧 >kafka安裝部署

kafka安裝部署

kafka安裝部署

單機kafka安裝部署

拷貝檔案

先拷貝kafka_2.11-2.2.0.tgz和zookeeper-3.4.14.tar.gz到/opt/software

解壓縮
cd /opt
mkdir software #存放壓縮包
mkdir module #存放解壓縮後的檔案
cd software
tar -zxvf zookeeper-3.4.14.tar.gz -C ../module #解壓縮到module資料夾,安裝kafka前需要先安裝jdk環境和zookeeper
tar -zxvf kafka_2.11-2.2.0.tgz -C ../module #解壓縮到module資料夾
修改zookeeper配置並啟動
cd /opt/module/zookeeper-3.4.14/
mkdir data
cd /opt/module/zookeeper-3.4.14/conf/
cp zoo_sample.cfg zoo.cfg
vim /opt/module/zookeeper-3.4.14/conf/zoo.cfg
# 修改dataDir=/opt/module/zookeeper-3.4.14/data

:wq #儲存退出
/opt/module/zookeeper-3.4.14/bin/zkServer.sh start #啟動zookeepr

修改kafka配置並啟動
cd /opt/module/kafka_2.11-2.2.0
mkdir log #後面放日誌用
vim /opt/module/kafka_2.11-2.2.0/config/server.properties
#修改log.dirs=/opt/module/kafka_2.11-2.2.0/log

按上圖修改後

:wq #儲存並退出
/opt/module/kafka_2.11-2.2.0/bin/kafka-server-start.sh -daemon
/opt/module/kafka_2.11-2.2.0/config/server.properties #用剛才的配置檔案後臺啟動
#可以輸入jps -l 或者jcmd檢視是否啟動成功(若是命令不行可以輸入這條指令先安裝)
yum install java-1.8.0-openjdk-devel.x86_64 -y
#(vim /opt/module/kafka_2.11-2.2.0/bin/kafka-server-stop.sh修改為
#PIDS=$(jps -lm | grep -i 'kafka.Kafka' | awk '{print $1}')
#)不然無法關閉程序

建立主題並驗證
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181 
--create --topic dyyy --partitions 2 --replication-factor 1 #建立主題
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181
--list # 列出主題
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181
--describe --topic dyyy #檢視詳情

釋出訂閱測試
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-consumer.sh 
--bootstrap-server 192.168.70.198:9092 --topic dyyy --from-beginning#消費者監聽dyyy主題
#這時再開啟一個視窗,切換到kafka的bin目錄,輸入命令(--from-beginning)表示從頭開始取訊息)
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-producer.sh
--broker-list 192.168.70.198:9092 --topic dyyy
#然後輸入文字,消費者那接收到了

各種命令
啟動kafka
/opt/module/kafka_2.11-2.2.0/bin/kafka-server-start.sh -daemon 
/opt/module/kafka_2.11-2.2.0/config/server.properties
關閉kafka
/opt/module/kafka_2.11-2.2.0/bin/kafka-server-stop.sh #關閉需要等待一兩分鐘
修改kafka配置
vim /opt/module/kafka_2.11-2.2.0/config/server.properties
檢視kafka程序
ps -ef|grep kafka
列出kafka主題
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181 --list
關閉zookeeper
/opt/module/zookeeper-3.4.14/bin/zkServer.sh stop
開啟zookeeper
/opt/module/zookeeper-3.4.14/bin/zkServer.sh start
檢視zookeeper狀態
/opt/module/zookeeper-3.4.14/bin/zkServer.sh status
刪除topic
vim /opt/module/kafka_2.11-2.2.0/config/server.properties
delete.topic.enable=true     #新增這條配置
#然後,才能通過命令刪除topic
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh  --delete  --zookeeper localhost:2181 --topic dyyy

叢集搭建

這裡以3臺伺服器為例子,首先解壓zookeeper到/opt/module/zookeeper-3.4.14/

修改zookeeper配置檔案
vim /opt/module/zookeeper-3.4.14/conf/zoo.cfg

  • dataDir:儲存記憶體中資料庫快照的位置,除非另有說明,否則指向資料庫更新的事務日誌。注意:應該謹慎的選擇日誌存放的位置,使用專用的日誌儲存裝置能夠大大提高系統的效能,如果將日誌儲存在比較繁忙的儲存裝置上,那麼將會很大程度上影像系統性能。

  • server.A=B:C:D

    A:其中 A 是一個數字,表示這個是伺服器的編號;

    B:是這個伺服器的 ip 地址;

    C:Leader選舉的埠;

    D:Zookeeper伺服器之間的通訊埠。

  我們需要修改的第一個是 dataDir ,在指定的位置處建立好目錄。

  第二個需要新增的是 server.A=B:C:D 配置,其中 A 對應下面我們即將介紹的myid 檔案。B是叢集的各個IP地址,C:D 是埠配置

建立myid檔案

在 上一步 dataDir 指定的目錄下,建立 myid 檔案。

然後在該檔案新增上一步 server 配置的對應 A 數字。

比如這裡的示例ip是192.168.70.198,那麼myid中寫入0。

啟動zookeeper

./zkServer.sh start 另外兩個伺服器按照以上步驟啟動。

檢視各例項執行情況
/opt/module/zookeeper-3.4.14/bin/zkServer.sh status

成功了,一個leader,兩個follower。要是叢集沒成功,記得開啟3888埠的防火牆

修改kafka配置檔案

vim /opt/module/kafka_2.11-2.2.0/config/server.properties

num.partitions=3 #設定分割槽數
default.replication.factor=3 #設定副本數,才能保證叢集穩定
group.initial.rebalance.delay.ms=3000

kafka建立主題
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper 192.168.70.194:2181,192.168.70.195:2181,192.168.70.198:2181 
--create --replication-factor 3 --partitions 3 --topic testdyyy#建立zookeeper的ip可以自己選個數,這裡選了3個ip的zookeeper並建立testdyyy的主題

現在去上面3臺的任意一處,輸入/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181 --list都能看到testdyyy的主題

生產者測試

向主題中寫入內容

/opt/module/kafka_2.11-2.2.0/bin/kafka-console-producer.sh --broker-list 192.168.70.194:9092,192.168.70.195:9092,192.168.70.198:9092 --topic testdyyy#這裡也可以選擇zookeeper的數量
消費者測試
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-consumer.sh  --bootstrap-server 192.168.70.195:9092 --topic testdyyy --from-beginning #任意一臺虛擬機器中輸入任意一個伺服器地址可以看到下面的內容

好了,叢集搭建並測試通過