Zookeeper+Kafka 高可用集群部署【保姆级教程】
时间:2025-11-03 20:20:52 出处:探索阅读(143)
Kafka 是用集一个消息队列中间件,它可以结合 Flink、群部Spark、署保ELK、姆级日志采集 等,教程构建强大的用集实时数据处理平台。
今天分享一下如何搭建一套zookeeper+Kafka的群部消息队列集群。虽然Kafka在新版本已经可以不通过zookeeper就可以实现高可用,署保但是姆级企业中大多数还是zookeeper+Kafka这个黄金搭配。理论型的教程知识后续再展开讲解,先将集群部署起来。用集
篇幅稍长,群部建议先收藏!署保

建议准备 3 台服务器,教程做一个高可用集群。
节点
IP
角色
操作系统
node1
10.0.0.190
Zookeeper + Kafka
RockyLinux 9.5
node2
10.0.0.191
Zookeeper + Kafka
RockyLinux 9.5
node3
10.0.0.192
Zookeeper + Kafka
RockyLinux 9.5
2. 环境依赖三台都需要操作:
(1) 修改主机名
复制# 节点1 hostnamectl set-hostname node1 # 节点2 hostnamectl set-hostname node2 # 节点3 hostnamectl set-hostname node31.2.3.4.5.6.7.8.(2) 安装 JDK 1.8+
下载jdk包:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
也可以直接yum安装openjdk,更快速一点
复制# 将下载上传三个服务器后解压到/data盘 tar -xvf jdk-8u461-linux-x64.tar.gz -C /data1.2.配置环境变量:
复制vi /etc/profile1.在文件末尾添加下面内容:
复制export JAVA_HOME=/data/jdk1.8.0_461 export JAVA_BIN=$JAVA_HOME/bin export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_BIN1.2.3.4.让配置生效:
复制source /etc/profile1.
(3) 关闭防火墙
测试环境可关闭,源码库生产需开放端口。
复制systemctl stop firewalld systemctl disable firewalld1.2.(4) 配置主机名解析
复制cat >> /etc/hosts <<EOF 10.0.0.190 node1 10.0.0.191 node2 10.0.0.192 node3 EOF1.2.3.4.5.(5) 关闭SELinux
复制# 永久关闭 sed -i s/enforcing/disabled/ /etc/selinux/config # 临时 setenforce 01.2.3.4.5.二、部署 Zookeeper 集群
Kafka 依赖 Zookeeper 管理集群状态,所以需要先安装 Zookeeper。可以先在一个节点下载,配置完复制过去就行
1. 下载并解压(节点1操作) 复制# 下载,可以选择合适的版本下载 wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz # 解压 tar -xvf apache-zookeeper-3.8.4-bin.tar.gz -C /data1.2.3.4.5. 2. 配置 zoo.cfg 复制# 进入配置文件目录 cd /data/apache-zookeeper-3.8.4-bin/conf # 复制参考配置文件 cp zoo_sample.cfg zoo.cfg # 修改配置文件,主要修改下面两项 dataDir=/data/zookeeper/data server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:38881.2.3.4.5.6.7.8.9.10.11.
参数解析:
dataDir:存储快照和 myid 文件的路径。server.X:集群成员配置,其中2888 端口:内部通信端口, 与 Leader 通信3888 端口:用于选举 Leader3. 拷贝到另外两个节点 复制scp -r /data/apache-zookeeper-3.8.4-bin root@10.0.0.191:/data scp -r /data/apache-zookeeper-3.8.4-bin root@10.0.0.192:/data1.2. 4. 配置节点 ID 复制# 每个节点新建文件夹 mkdir -p /data/zookeeper/data # 节点1 echo 1 > /data/zookeeper/data/myid # 节点2 echo 2 > /data/zookeeper/data/myid # 节点3 echo 3 > /data/zookeeper/data/myid1.2.3.4.5.6.7.8.9.10.11. 5. 配置环境变量将zookeeper加入环境变量,方便后期启动。
复制vi /etc/profile # 尾部添加 export ZOOKEEPER_HOME=/data/apache-zookeeper-3.8.4-bin export PATH=$ZOOKEEPER_HOME/bin:$PATH # 使配置文件生效 source /etc/profile1.2.3.4.5.6.7.8. 6. 启动 Zookeeper 复制zkServer.sh start zkServer.sh status1.2.确认 3 台机器都正常启动,其中两台为fllower,一台为leader,则zookeeper集群安装成功。

三、部署 Kafka 集群
1. 下载并解压跟zookeeper一样,在节点1先下载,配置完复制到另外两个节点
复制# 下载安装包 wget https://downloads.apache.org/kafka/3.9.1/kafka_2.13-3.9.1.tgz # 解压到/data目录 tar -xvf kafka_2.13-3.9.1.tgz -C /data1.2.3.4.5. 2. 修改配置文件进入到安装目录,编辑配置文件server.properties
复制cd /data/kafka_2.13-3.9.1/config vi server.properties1.2.修改下面信息
复制broker.id=1 # 不得重复,整个集群中唯一 listeners=PLAINTEXT://10.0.0.190:9092 # 监听端口 log.dirs=/data/kafka/logs zookeeper.cnotallow=node1:2181,node2:2181,node3:2181 num.partitinotallow=31.2.3.4.5.参数解析:
broker.id:Kafka Broker 唯一 ID。企商汇node1=1, node2=2, node3=3。listeners:服务监听地址和端口。需要换成真实的IP地址,每个节点填本机IP地址log.dirs:存储 Kafka 消息日志的目录。建议挂载大容量磁盘。num.partitions:Topic 默认分区数,决定并行消费能力。zookeeper.connect:连接zookeeper。3. 配置拷贝到另外两个节点 复制scp -r /data/kafka_2.13-3.9.1 root@10.0.0.191:/data scp -r /data/kafka_2.13-3.9.1 root@10.0.0.192:/data1.2.注意:节点2和节点3需要修改broker.id和linsteners两个配置

新建日志目录(每个节点操作)
复制mkdir -p /data/kafka/logs1. 4. 配置环境变量将kafka加入环境变量,方便后期启动。三个节点都配置。
复制vi /etc/profile # 尾部添加 export KAFKA_HOME=/data/kafka_2.13-3.9.1 export PATH=$KAFKA_HOME/bin:$PATH # 使配置文件生效 source /etc/profile1.2.3.4.5.6.7.8. 5. 启动 Kafka 复制kafka-server-start.sh -daemon /data/kafka_2.13-3.9.1/config/server.properties1.三台机器依次启动 Kafka。可以看到kafka进程已正常启动。

四、测试验证
1. 创建 Topic 复制kafka-topics.sh --create --topic test \ --bootstrap-server node1:9092,node2:9092,node3:9092 \ --partitions 3 --replication-factor 31.2.3.参数解析:
--partitions 3:分区数,决定并发度。--replication-factor 3:副本数,保证容错能力。2. 查看 Topic 复制kafka-topics.sh --list --bootstrap-server node1:90921.

至此,集群搭建完成。
服务器租用