1.集群規(guī)劃
在一臺(tái)服務(wù)器上開啟三個(gè)zookeeper服務(wù)zookeeper-server1,zookeeper-server2,zookeeper-server3,和三個(gè)Kafka服務(wù)kafka-server1,kafka-server2,kafka-server3集群
本機(jī)IP:192.168.11.251
Zookeeper默認(rèn)端口是2181,設(shè)置對(duì)應(yīng)的Zookeeper服務(wù)端口:
zookeeper-server1->2181,
zookeeper-server2->2182,
zookeeper-server3->2183
Zookeeper:
格式: server.A = B:C:D**
A:是一個(gè)數(shù)字,表示第幾號(hào)服務(wù)器
B:服務(wù)器IP地址
C:是一個(gè)端口號(hào),用來集群成員的信息交換,表示這個(gè)服務(wù)器與集群中的leader服務(wù)器交換信息的端口
D:是在leader掛掉時(shí)專門用來進(jìn)行選舉leader所用的端口
配置:
server.1=192.168.11.251:7001:9001
server.2=192.168.11.251:7002:9002
server.3=192.168.11.251:7003:9003
Kafka默認(rèn)端口是9092,設(shè)置對(duì)應(yīng)的Zookeeper服務(wù)端口:
kafka-server1->9091,
kafka-server2->9092,
kafka-server3->9093
2.zookeeper安裝部署
1.官網(wǎng)下載zookeeper,我用的是3.3.6版本:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/
2.將解壓后的zookeeper文件夾,復(fù)制三份,分別命名為server1,server2,server3;
3.在當(dāng)前目錄下建立兩個(gè)文件夾data和dataLog,整體結(jié)構(gòu)如下:

4.進(jìn)入data文件夾下,創(chuàng)建三個(gè)文件夾對(duì)應(yīng)三個(gè)zookeeper服務(wù)器,在dataLog文件夾中同樣新建這三個(gè)文件夾

5.分別進(jìn)入data文件夾下的server1,server2,server3,新建文件myid(文件無后綴),在對(duì)應(yīng)的myid文件中分別對(duì)應(yīng)寫如1,2,3,dataLog中的文件夾無此操作

6.修改zookeeper-server1/conf/zoo.cfg,修改以下幾處內(nèi)容
(1). dataDir: 修改為 dataDir=D:/kafka-cluster/zookeeper/data/server1
(2).dataLogDir修改為:dataLogDir=D:/kafka-cluster/zookeeper/datalog/server1
(3).clientPort,默認(rèn)的端口是2181,修改server1端口:clientPort=2182
(4).文件末尾加入三個(gè)server的地址

#這里server.x含義,如server.1? 這個(gè) 1 就是我們剛剛建立的myid文件 里面的文本1
server.1=192.168.11.251:7001:9001?
server.2=192.168.11.251:7002:9002?
server.3=192.168.11.251:7003:9003
其他兩個(gè)服務(wù)下對(duì)應(yīng)的zoo.cfg分別修改這三處為對(duì)應(yīng)的地址,其中server2的端口修改為clientPort=2182,server3的端口修改為:clientPort=2183
7.分別啟動(dòng)三個(gè)服務(wù),只有當(dāng)三個(gè)服務(wù)都正常啟動(dòng)時(shí),每一個(gè)服務(wù)才不會(huì)報(bào)錯(cuò)。
在每個(gè)zookeeper-server1/bin 目錄下新建文件 start-zkServer.bat ,內(nèi)容為:
?? title zkServer-1
? ? zkServer.cmd
復(fù)制該文件帶其他兩個(gè)server對(duì)應(yīng)的目錄下,修改title為對(duì)應(yīng)的server即可,雙擊該文件即可啟動(dòng)對(duì)應(yīng)的server
注意:當(dāng)啟動(dòng)第三個(gè)服務(wù)時(shí)會(huì)報(bào) zkadmin端口8080被占用的問題,集群中我們可以禁用akadmin服務(wù),
"-Dzookeeper.admin.enableServer=false"
修改每個(gè)server下的bin目錄里面的zkServer.cmd 文件,如圖所示
2.kafka安裝部署
1.kafka官網(wǎng)下載kafkahttps://www.apache.org/dyn/closer.cgi?path=/kafka/2.5.0/kafka_2.12-2.5.0.tgz解壓并且復(fù)制三分,分別重命名為kafka-server1,kafka-server2,kafka-server3,如圖所示:

新建文件夾kafkalogs,用來存儲(chǔ)kafka日志文件,在里面新建三個(gè)文件夾,命名為server1,server2,server3

2.進(jìn)入kafka-server1/config,修改文件server.properties的配置:
(1).修改broker.id為:broker.id=1
(2).添加端口:port=9091
(3).添加host.name:host.name=192.168.11.251
(4).添加 # kafka集群的地 broker.list=192.168.11.251:9091,192.168.11.251:9092,192.168.11.251:9093
(5).修改log.dirs:log.dirs=D:/kafka-cluster/kafka/kafkalogs/server1
(6).修改zookeeper的集群地址:
zookeeper.connect=192.168.11.251:2181,192.168.11.251:2182,192.168.11.251:2183

然后復(fù)制該文件到其他兩個(gè)server的目錄中,修改以上內(nèi)容為和server對(duì)應(yīng)的內(nèi)容,
其中,server2的broker.id=2,端口為port=9092,log.dirs:log.dirs=D:/kafka-cluster/kafka/kafkalogs/server2,以此類推。
3.在kafka-server1/bin/windows 下新建文件 start-kafka-server.bat,內(nèi)容為:
title kafka-server1
kafka-server-start ../../config/server.properties
復(fù)制該文件到其他兩個(gè)server對(duì)應(yīng)的文件夾下,修改title為對(duì)應(yīng)的server即可,雙擊該文件即可啟動(dòng)對(duì)應(yīng)的server。