centos7安裝部署kafka_2.13-2.4.1集群


需要三台linux服務器,此安裝手冊以centos7為例,假設這三台服務器主機ip為10.20.31.116,10.20.31.117,10.20.31.137:

1.     系統需求

   JDK版本:jdk1.8

   Zookeeper版本:zookeeper-3.5.8

   Kafka版本:kafka_2.13-2.4.1

   注意:防火牆端口開放

2.     集群搭建

2.1   集群jdk1.8.x環境搭建(集群所有節點都需要配置)

2.1.1         官方下載jdk,並上傳到服務器/opt目錄下,此文檔下載文件為jdk1.8.0_101.tar

2.1.2         解壓jdk壓縮文件

cd /opt/ && tar -zxvf jdk1.8.0_101.tar.gz

2.1.3         配置系統環境變量

vi /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH

編輯后保存並退出   :wq

2.1.4         使配置文件生效

source  /etc/profile

2.1.5         查看java版本

java -version

2.2   zookeeper集群環境搭建(集群所有節點都需要配置)

2.2.1         下載並解壓

官方地址:https://www.apache.org/dyn/closer.cgi/zookeeper/

下載版本3.5.8 :

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz

解壓 cd /opt/ && tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz

2.2.2         創建data、log存儲目錄

mkdir -p /data/zookeeper/data
mkdir -p /data/zookeeper/log

2.2.3         新增zoo.cfg配置文件

cd apache-zookeeper-3.5.8-bin./conf/ && vi zoo.cfg

# 基本事件單元,單位毫秒。
tickTime=2000
initLimit=10
syncLimit=5
# 存儲內存中數據庫快照的位置,默認是/tmp/zookeeper
dataDir=/data/zookeeper/data
# 日志路徑,也就是事務日志。
dataLogDir=/data/zookeeper/log
# 監聽客戶端連接的端口
clientPort=2181
server.1=10.20.31.116:2888:3888
server.2=10.20.31.117:2888:3888
server.3=10.20.31.137:2888:3888

2.2.4         新增myid文件

myid文件內容是當前服務器的編號。

10.20.31.116:
   echo '1' > /data/zookeeper/data/myid
10.20.31.117:
   echo '2' > /data/zookeeper/data/myid
10.20.31.137:
   echo '3' > /data/zookeeper/data/myid

2.2.5         啟動Zookeeper集群

10.20.31.116:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start

10.20.31.117:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start

10.20.31.137:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start

2.2.6         查看Zookeeper集群狀態

10.20.31.116:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status

10.20.31.117:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status

10.20.31.137:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status

2.3   kafka集群環境搭建(集群所有節點都需要配置)

2.3.1         下載並解壓

下載版本2.4.1:

http://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.13-2.4.1.tgz

解壓:cd /opt/ && tar -zxvf kafka_2.13-2.4.1.tgz

2.3.2         編輯配置文件:

10.20.31.116:

vi kafka_2.13-2.4.1/config/server.properties

#修改以下配置
#為方便,直接將broker.id設置為了ip的最后一段,當集群中有多個Kafka時,他們的這個值必須不一樣
broker.id=116
#可選配置項,將日志輸出到指定的位置
log.dirs=/tmp/kafka-logs
#必須配置自己的zookeepe
zookeeper.connect=10.20.31.116:2181,10.20.31.117:2181,10.20.31.137:2181
#在配置集群的時候,必須設置
listeners = PLAINTEXT://10.20.31.116:9092

10.20.31.117:

    vi kafka_2.13-2.4.1/config/server.properties

#修改以下配置
#為方便,直接將broker.id設置為了ip的最后一段,當集群中有多個Kafka時,他們的這個值必須不一樣
broker.id=117
#可選配置項,將日志輸出到指定的位置
log.dirs=/tmp/kafka-logs
#必須配置自己的zookeepe
zookeeper.connect=10.20.31.116:2181,10.20.31.117:2181,10.20.31.137:2181
#在配置集群的時候,必須設置
listeners = PLAINTEXT://10.20.31.117:9092

10.20.31.137:

    vi kafka_2.13-2.4.1/config/server.properties

#修改以下配置
#為方便,直接將broker.id設置為了ip的最后一段,當集群中有多個Kafka時,他們的這個值必須不一樣
broker.id=137
#可選配置項,將日志輸出到指定的位置
log.dirs=/tmp/kafka-logs
#必須配置自己的zookeepe
zookeeper.connect=10.20.31.116:2181,10.20.31.117:2181,10.20.31.137:2181
#在配置集群的時候,必須設置
listeners = PLAINTEXT://10.20.31.137:9092

注意:如果是配置集群,下面信息必須修改:

(1)、broker.id:同一個集群中,每台機器均不能一樣

(2)、zookeeper.connect:因為我有3台zookeeper服務器,所以在這里zookeeper.connect設置為3台,必須全部加進去

(3)、listeners:在配置集群的時候,必須設置,不然以后的操作會報找不到leader的錯誤

2.3.3         集群各節點啟動kafka服務

/opt/kafka_2.13-2.4.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.13-2.4.1/config/server.properties

2.3.4         查看集群中各個節點的服務的啟動狀態

 

2.3.5         操作kafka

/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --create --zookeeper 10.20.31.116:2181 --replication-factor 1 --partitions 1 --topic test

說明: 
--zookeeper:為zk服務器地址,已逗號分割配置多個 
--replication-factor:分區leader副本數,1代表沒有副本即分區本身,建議為2 
--partitions:分區數 
--topic:topic名稱

2.3.6         查看topic

/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --list --zookeeper 10.20.31.137:2181

2.3.7         查看test topic消息

/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --describe --zookeeper 10.20.31.117:2181 --topic test

 

說明: 

leader:負責處理消息的讀和寫,leader是從所有節點中隨機選擇的.

Replicas:列出了所有的副本節點,不管節點是否在服務中.

Lsr:是正在服務中的節點.

2.3.8         發布消息

/opt/kafka_2.13-2.4.1/bin/kafka-console-producer.sh --broker-list 10.20.31.117:9092 --topic test

 

2.3.9         消費消息

/opt/kafka_2.13-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server 10.20.31.137:9092 --topic test --from-beginning

 

說明: 

from-beginning:每次從頭開始消費

2.3.10     刪除topic

/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --delete --zookeeper 10.20.31.137:2181 --topic test

2.4   集群可視化管理

2.4.1         https://blog.csdn.net/llwy1428/article/details/94389615

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM