kafka集群的搭建

一、背景

最近在學(xué)習(xí) kafka,此處記錄一下 mac上 搭建 kafka集群的步驟。

二、安裝軟件

由于 kafka 依賴 zookeeper 因此需要安裝 zookeeper,而kafka是基于scala語(yǔ)言編寫,scala又是基于 jdk的,因此需要安裝 jdk。
1、 JDK , 推薦在 jdk8 及以上的版本,此處安裝 jdk 略。
2、zookeeper , 在本機(jī)搭建一個(gè) 3 個(gè)節(jié)點(diǎn)的 zk 偽集群。
3、kafka 在本地搭建一個(gè)3個(gè)節(jié)點(diǎn)的 kafka 集群。

三、安裝步驟

1、搭建一個(gè) 3 個(gè)節(jié)點(diǎn)的 zk 偽集群

ip 客戶端連接端口 集群選舉接口 集群原子廣播接口 server.id中id的值 節(jié)點(diǎn)名,目前沒用到,這個(gè)配置到hosts文件中
127.0.0.1 2181 12888 13888 1 zk01
127.0.0.1 3181 22888 23888 2 zk02
127.0.0.1 4181 32888 33888 3 zk03

注意:
1、server.id的中的id的配置是在 zoo.cfg配置文件的 dataDir 配置項(xiàng)指定的目錄中 創(chuàng)建 myid文件指定的。

1、下載 zookeeper 安裝包

get https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

2、解壓三份,并放置在 zookeeper 目錄中

將zookeeper解壓三份

3、修改 zookeeper 配置文件,此處以 zk01 為例子

1、修改 conf 目錄下的 zoo_sample.cfg 為 zoo.cfg

修改 zoo_sample.cfg 為 zoo.cfg

2、編輯 zoo.cfg 配置文件
zookeeper配置文件

注意:
1、此處拿 zk01 為示例編寫,因?yàn)槭潜镜厣蠁?dòng)多個(gè),所以 需求修改端口
2、各個(gè)服務(wù)器上的 myid 文件對(duì)應(yīng)的值 都應(yīng)該不一樣,且唯一。
3、dataDir 的路徑需要修改。
4、其余的配置可以看著修改,看具體的情況。

5、啟動(dòng)3個(gè)zk節(jié)點(diǎn)

分別進(jìn)入到 zk01/bin,zk02/bin,zk03/bin目錄下執(zhí)行 如下命令

 ./zkServer.sh --config ../conf start

6、連接 zk 集群

./zkCli.sh -server 127.0.0.1:2181,127.0.0.1:3181,127.0.0.1:4181

2、搭建一個(gè)3個(gè)節(jié)點(diǎn)的 kafka 集群

ip 客戶端連接端口 broker.id
127.0.0.1 9092 0
127.0.0.1 9093 1
127.0.0.1 9094 2

注意:
1、broker.id的值必須唯一,且是數(shù)字。

1、下載 kafka

https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.13-2.6.0.tgz

2、解壓3份,并放置到 kafka 目錄中

kafka目錄

3、修改 server.properties 文件,此處以 kafka01 為例子

需要修改的屬性,此處以kafka01為示例,不同的接口修改具體的值

屬性名 屬性值 描述
broker.id 0 每個(gè)kafka節(jié)點(diǎn)上配置的都需要不一樣
listeners PLAINTEXT://127.0.0.1:9092 每個(gè)kafka節(jié)點(diǎn)上配置的都需要不一樣,PLAINTEXT表示明文傳輸
log.dirs ../logs 日志文件路徑
zookeeper.connect 127.0.0.1:2181,127.0.0.1:3181,127.0.0.1:4181 zk服務(wù)器地址
num.partitions 1 主題默認(rèn)的分區(qū)數(shù)
offsets.topic.replication.factor 3 kafka的內(nèi)部topic __consumer_offsets副本數(shù),默認(rèn)為1,生產(chǎn)環(huán)境建議>1,否則高可用可能有問題
log.retention.hours 168 控制日志文件保留的時(shí)間,單位小時(shí)

4、啟動(dòng)3個(gè)kafka節(jié)點(diǎn)

依次進(jìn)入到 kafka01/bin,kafka02/bin,kafka03/bin 目錄,執(zhí)行如下命令

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

5、kafka測(cè)試

此處以 kafka01作為示例

1、創(chuàng)建一個(gè)主題

bin/kafka-topics.sh --create --topic test-001 --replication-factor 1 --partitions 1 --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
創(chuàng)建一個(gè)主題

2、查看主題信息

bin/kafka-topics.sh --describe --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094 --topic test-001
查看主題信息

3、往創(chuàng)建的主題中發(fā)布一條信息

bin/kafka-console-producer.sh --topic test-001 --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
發(fā)送消息

4、讀取剛剛往主題中發(fā)布的消息

bin/kafka-console-consumer.sh --topic test-001 --from-beginning --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094
接收到消息

到此,一個(gè)簡(jiǎn)單的可用的kafka集群就搭建完畢了。

四、參考文檔

1、https://zookeeper.apache.org/
2、https://kafka.apache.org/documentation/#quickstart

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容