Linux環境下,kafka 安裝以及單機、集羣的配置

 

1. 本文Linux版本,kafka版本

Linux -- CentOS-7-x86_64-Minimal-1810

kafka -- kafka_2.12-2.2.0.tgz

安裝方式:tar 解壓縮

安裝kafka前,應先安裝zookeeper,詳見之前的文章 

Linux環境下,ZK(zookeeper)單機,集羣安裝配置

本文使用zk集羣(3臺服務器)(192.xxx.xxx.1:2181,192.xxx.xxx.2:2181,192.xxx.xxx.3:2181)。使用的虛擬機,kafka安裝的機器同zk的一致。

2. 安裝 kafka 步驟

2.1 安裝包準備

wget  http://mirror.bit.edu.cn/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz

2.2 移動到/usr/local目錄下

mv kafka_2.12-2.2.0.tgz /usr/local

2.3 解壓縮

tar zxvf kafka_2.12-2.2.0.tgz

2.4 創建日誌目錄

 mkdir -p /data/kafka-logs

3. 單機配置(以虛擬機192.xxx.xxx.1爲例

修改配置文件 server.properties

 

cd  /usr/local/kafka_2.12-2.2.0/config
vi server.properties

修改以下內容

listeners=PLAINTEXT://192.xxx.xxx.1:9092  #本機ip,不要用localhost和127.0.0.1
num.io.threads=8        #io線程數
log.dirs=/data/kafka-logs        #kafka消息數據存放目錄
auto.create.topics.enable=false     #不能自動創建主題
zookeeper.connect=192.xxx.xxx.1:2181,192.xxx.xxx.2:2181,192.xxx.xxx.3:2181 #zk集羣信息

啓動服務,應先啓動配置的zk集羣的所有服務

切換到kafka安裝目錄

cd  /usr/local/kafka_2.12-2.2.0

執行以下命令

bin/kafka-server-start.sh config/server.properties &

4. 集羣搭建

使用zk安裝的3臺虛擬機192.xxx.xxx.1,192.xxx.xxx.2,192.xxx.xxx.3搭建集羣,按照單機安裝步驟(除配置文件不同外)安裝kafka。

集羣配置,每臺機器分別修改server.properties,以192.xxx.xxx.1爲例,修改以下內容

broker.id=1        #整數,不要與集羣中其他broker.id重複,可以用ip最後一個字段
listeners=PLAINTEXT://192.xxx.xxx.1:9092  #本機ip,不要用localhost和127.0.0.1
num.io.threads=8        #io線程數
log.dirs=/data/kafka-logs        #kafka消息數據存放目錄
num.partitions=6        #每個topic的默認log劃分數,一般爲節點數乘以2
log.retention.hours=168          #日誌保留時長,一般爲7天
auto.create.topics.enable=true     
delete.topic.enable=true
default.replication.factor=2
zookeeper.connect=192.xxx.xxx.1:2181,192.xxx.xxx.2:2181,192.xxx.xxx.3:2181 #zk集羣信息

分別修改另外2臺機器的kafka,區別在於 broker.id 和 listeners的ip配置。

啓動服務,按照單機中的啓動服務方法,分別啓動3臺機器上的kafka。

5. 驗證集羣

5.1 創建主題與查看主題

在 192.xxx.xxx.1 上創建topic,到 kafka 安裝 bin 目錄下

cd  /usr/local/kafka_2.12-2.2.0/bin

創建名爲 TEST_TOPIC 的主題

./kafka-topics.sh --create --zookeeper 192.xxx.xxx.1:2181 --replication-factor 2 --partitions 3 --topic TEST_TOPIC

可在 192.xxx.xxx.2 上查看主題

cd  /usr/local/kafka_2.12-2.2.0/bin
./kafka-topics.sh --describe --zookeeper 192.xxx.xxx.1:2181 --topic TEST_TOPIC

5.2 發送消息與接收消息

在 192.xxx.xxx.1 上發送消息,將消息發送到集羣

./kafka-console-producer.sh --broker-list 192.xxx.xxxx.1:9092,192.xxx.xxxx.2:9092,192.xxx.xxxx.3:9092 --topic TEST_TOPIC

在 192.xxx.xxx.2 上接收來自 192.xxx.xxx.1 的主題爲 TEST_TOPIC 的消息

./kafka-console-consumer.sh --bootstrap-server 192.xxx.xxxx.1:9092 --topic TEST_TOPIC --from-beginning

6. 結束kafka

bin/kafka-server-stop.sh

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章