一、zookeeper在kafka中的具體作用
? ? 它是一個(gè)分布式協(xié)調(diào)框架。很好的將消息生產(chǎn)、消息存儲(chǔ)、消息消費(fèi)的過(guò)程結(jié)合在一起。在典型的Kafka集群中,Kafka通過(guò)Zookeeper管理集群控制,選舉leader,以及在Consumer Group發(fā)生變化時(shí)進(jìn)行rebalance。Producer使用push模式將消息發(fā)布到broker,Consumer使用pull模式從broker訂閱并消費(fèi)信息。
? ? Kafka嚴(yán)重依賴于Zookeeper集群。所有的broker在啟動(dòng)的時(shí)候都會(huì)往zookeeper進(jìn)行注冊(cè),目的就是選舉出一個(gè)controller,controlller會(huì)讀取注冊(cè)上的從點(diǎn)的數(shù)據(jù)(通過(guò)監(jiān)聽(tīng)機(jī)制),生成集群的元數(shù)據(jù)信息,之后把這些信息都分發(fā)給其他的服務(wù)器,讓其他服務(wù)器能感知到集群中其他成員的存在。(zookeeper其實(shí)主要的存在意義就是給集群的管理機(jī)制上面,做保證。都注冊(cè)到zk,這樣就可以相互發(fā)現(xiàn)了)
二、集群搭建
1.將kafka_2.12-2.4.1.tgz解壓到/export/servers目錄下
解壓命令:tar -ZXVF kafka_2.12-2.4.1.tgz -C /export/servers
#到/export/servers目錄下進(jìn)行改名
[root@master servers]# mv kafka_2.12-2.4.1.tgz kafka
2、配置Kafka的環(huán)境變量
進(jìn)入到/etc/profile文件中添加以下內(nèi)容:
#KAFKA_HOME
export KAFKA_HOME=/export/servers/kafka
export PATH=$PATH:${KAFKA_HOME}/bin
3、(1)進(jìn)入到Kafka的config目錄中,修改配置文件server.properties
[root@master config]# vi server.properties
#修改內(nèi)容如下
#保證broker唯一,第一臺(tái)可以不修改默認(rèn)為0,后面兩臺(tái)需要修改,如改為1和2
broker.id=0
#設(shè)置listeners
listeners = PLAINTEXT://master:9092
#kafka的日志目錄,這項(xiàng)默認(rèn)放在tmp目錄下,而tmp目錄中內(nèi)容會(huì)隨著重啟而丟失
log.dirs=/export/data/kafka
#分區(qū)數(shù)量一般與broker保持一致
num.partitions=3
num.recovery.threads.per.data.dir=1
#設(shè)置zookeeper.connect,配置三臺(tái)zookeeper連接地址
zookeeper.connect=master:2181,slave1:2181,slave2:2181
(2)進(jìn)入到Kafka的config目錄中,修改配置文件zookeeper.properties
[root@master config]# vi zookeeper.properties
#配置內(nèi)容如下
#zookeeper數(shù)據(jù)目錄,這項(xiàng)默認(rèn)放在tmp目錄下,而tmp目錄中內(nèi)容會(huì)隨著重啟而丟失
dataDir=/export/servers/zookeeper/data
#注:mkdir -p /export/servers/zookeeper/data(這是根據(jù)自己路徑創(chuàng)建的)
#配置連接參數(shù),添加以下配置
sinkTime=2000
initLimit=10
syncLimit=5
#設(shè)置broker Id的服務(wù)地址
server.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888
?(3)zookeeper數(shù)據(jù)目錄中添加id配置
[root@master config]# cd /export/servers/zookeeper/data/
[root@master data]# vi myid
#寫入broker.id屬性值,master中為0,slave1中為1,slave2中為2(每臺(tái)機(jī)子都要?jiǎng)?chuàng)建)
0
3、分發(fā)Kafka
scp -r /export/servers/kafka slave1:/export/servers
scp -r /export/servers/kafka slave2:/export/servers
4、修改slave1,slave2中的文件配置
[root@slave1 ~]# cd /export/servers/kafka/
[root@slave1 kafka]# cd config/
[root@slave1 config]# vi server.properties
broker.id=1
listeners = PLAINTEXT://slave1:9092
#隨后保存退出(:wq)
[root@slave2 ~]# cd /export/servers/kafka/
[root@slave2 kafka]# cd config/
[root@slave2 config]# vi server.properties
broker.id=2
listeners = PLAINTEXT://slave2:9092
#隨后保存退出(:wq)
#slave1,slave2每臺(tái)機(jī)子中myid分別為1,2
三、啟動(dòng)Kafka
kafka啟動(dòng)時(shí)先啟動(dòng)zookeeper,在啟動(dòng)kafka;關(guān)閉時(shí)相反,先關(guān)閉kafka,再關(guān)閉zookeeper
[root@master data]# cd /export/servers/kafka/bin
[root@master kafka]# bin/zookeeper-server-start.sh config/zookeeper.properties &
#注:三臺(tái)機(jī)子都要啟動(dòng)zookeeper
[root@master kafka]# bin/kafka-server-start.sh config/server.properties &
#啟動(dòng)kafka
四、用jps查看進(jìn)程,如圖:
至此,Kafka集群搭建完畢文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-480437.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-480437.html
到了這里,關(guān)于CentOS7中新版本自帶zookeeper搭建Kafka集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!