0


CentOS7中新版本自带zookeeper搭建Kafka集群

一、zookeeper在kafka中的具体作用

它是一个分布式协调框架。很好的将消息生产、消息存储、消息消费的过程结合在一起。在典型的Kafka集群中,Kafka通过Zookeeper管理集群控制,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费信息。

Kafka严重依赖于Zookeeper集群。所有的broker在启动的时候都会往zookeeper进行注册,目的就是选举出一个controller,controlller会读取注册上的从点的数据(通过监听机制),生成集群的元数据信息,之后把这些信息都分发给其他的服务器,让其他服务器能感知到集群中其他成员的存在。(zookeeper其实主要的存在意义就是给集群的管理机制上面,做保证。都注册到zk,这样就可以相互发现了)

二、集群搭建

1.将kafka_2.12-2.4.1.tgz解压到/export/servers目录下

解压命令:tar -ZXVF kafka_2.12-2.4.1.tgz -C /export/servers

#到/export/servers目录下进行改名
[root@master servers]# mv kafka_2.12-2.4.1.tgz kafka

2、配置Kafka的环境变量

进入到/etc/profile文件中添加以下内容:

#KAFKA_HOME
export KAFKA_HOME=/export/servers/kafka
export PATH=$PATH:${KAFKA_HOME}/bin

3、(1)进入到Kafka的config目录中,修改配置文件server.properties

[root@master config]# vi server.properties 
#修改内容如下
#保证broker唯一,第一台可以不修改默认为0,后面两台需要修改,如改为1和2
broker.id=0

#设置listeners
listeners = PLAINTEXT://master:9092

#kafka的日志目录,这项默认放在tmp目录下,而tmp目录中内容会随着重启而丢失
log.dirs=/export/data/kafka

#分区数量一般与broker保持一致
num.partitions=3

num.recovery.threads.per.data.dir=1

#设置zookeeper.connect,配置三台zookeeper连接地址
zookeeper.connect=master:2181,slave1:2181,slave2:2181

(2)进入到Kafka的config目录中,修改配置文件zookeeper.properties

[root@master config]# vi zookeeper.properties
#配置内容如下
#zookeeper数据目录,这项默认放在tmp目录下,而tmp目录中内容会随着重启而丢失
dataDir=/export/servers/zookeeper/data
#注:mkdir -p /export/servers/zookeeper/data(这是根据自己路径创建的)

#配置连接参数,添加以下配置
sinkTime=2000
initLimit=10
syncLimit=5

#设置broker Id的服务地址
server.0=master:2888:3888
server.1=slave1:2888:3888
server.2=slave2:2888:3888

(3)zookeeper数据目录中添加id配置

[root@master config]# cd /export/servers/zookeeper/data/
[root@master data]# vi myid
#写入broker.id属性值,master中为0,slave1中为1,slave2中为2(每台机子都要创建)
0

3、分发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每台机子中myid分别为1,2

三、启动Kafka

kafka启动时先启动zookeeper,在启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper

[root@master data]# cd /export/servers/kafka/bin
[root@master kafka]# bin/zookeeper-server-start.sh config/zookeeper.properties &
#注:三台机子都要启动zookeeper
[root@master kafka]# bin/kafka-server-start.sh config/server.properties &
#启动kafka

四、用jps查看进程,如图:

至此,Kafka集群搭建完毕


本文转载自: https://blog.csdn.net/m0_71263402/article/details/129947923
版权归原作者 努力的小崽. 所有, 如有侵权,请联系我们删除。

“CentOS7中新版本自带zookeeper搭建Kafka集群”的评论:

还没有评论