Kafka部署

发布于 2026-07-28 13:00 更新于 2026-07-28 13:01 562 字 3 min read ... 访问量

本文介绍了Kafka集群的部署流程,包括关闭防火墙、配置系统资源限制、安装并配置Kafka服务器参数、在多个节点同步配置文件、启动ZooKeeper和Kafka服务、验证集群状态及测试生产者与消费者之间的消息互通,最终确认Kafka集群正常运行。

Kafka 集群部署

系统配置调整

关闭防火墙

sudo systemctl stop ufw
sudo systemctl disable ufw

资源配置调整

编辑/etc/security/limits.conf文件

sudo vi /etc/security/limits.conf

添加以下内容:

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

安装与配置 Kafka 集群

下载并解压

cd /export/software
wget -P /export/software/ https://repo.huaweicloud.com/apache/kafka/3.4.0/kafka_2.12-3.4.0.tgz
tar -zxvf /export/software/kafka_2.12-3.4.0.tgz -C /export/servers/
cd /export/servers
mv /export/servers/kafka_2.12-3.4.0 /export/servers/kafka

配置 Kafka 服务器参数

编辑修改/export/servers/kafka/config/server.properties文件

sudo chown -R hadooper:hadooper /export/servers/kafka/
vi /export/servers/kafka/config/server.properties

hadoop01:

broker.id=1
listeners=PLAINTEXT://hadoop01:9092
advertised.listeners=PLAINTEXT://hadoop01:9092
log.dirs=/export/servers/kafka/kafka-logs
num.partitions=3
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
default.replication.factor=3
offsets.topic.replication.factor=3
vi /export/servers/kafka/bin/kafka-server-start.sh

添加如下内容于脚本开始处:

export JAVA_HOME=/export/servers/jdk
vi /export/servers/kafka/bin/kafka-server-stop.sh

添加如下内容于脚本开始处:

export JAVA_HOME=/export/servers/jdk

删除并替换 hive 中原有的 kafka:

rm /export/servers/hive-4.0.1/lib/kafka-clients-2.5.0.jar
cp /export/servers/kafka/libs/kafka-clients-3.4.0.jar /export/servers/hive-4.0.1/lib/

于 hadoop01 节点分发至 hadoop02、hadoop03 节点

scp -r /export/servers/kafka hadoop02:/tmp/
scp -r /export/servers/kafka hadoop03:/tmp/

进入 hadoop02:

sudo cp -r /tmp/kafka /export/servers/
rm -r /tmp/kafka

编辑修改/export/servers/kafka/config/server.properties文件

sudo chown -R hadooper:hadooper /export/servers/kafka/
vi /export/servers/kafka/config/server.properties

hadoop02:

broker.id=2
listeners=PLAINTEXT://hadoop02:9092
advertised.listeners=PLAINTEXT://hadoop02:9092
log.dirs=/export/servers/kafka/kafka-logs
num.partitions=3
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
default.replication.factor=3
offsets.topic.replication.factor=3

进入 hadoop03:

sudo cp -r /tmp/kafka /export/servers/
rm -r /tmp/kafka

编辑修改/export/servers/kafka/config/server.properties文件

sudo chown -R hadooper:hadooper /export/servers/kafka/
vi /export/servers/kafka/config/server.properties

hadoop03:

broker.id=3
listeners=PLAINTEXT://hadoop03:9092
advertised.listeners=PLAINTEXT://hadoop03:9092
log.dirs=/export/servers/kafka/kafka-logs
num.partitions=3
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
default.replication.factor=3
offsets.topic.replication.factor=3

启动集群验证

启动 ZooKeeper 集群:在各节点上启动 ZooKeeper 服务

启动节点

zkServer.sh start

检查节点角色(Leader/Follower)

zkServer.sh status

启动 Kafka 集群

按顺序在每个 Kafka 节点上,使用以下命令启动 Kafka 服务:

cd /export/servers/kafka
mkdir -p /export/servers/kafka/logs
mkdir -p /export/servers/kafka/kafka-logs
/export/servers/kafka/bin/kafka-server-start.sh -daemon /export/servers/kafka/config/server.properties

测试

jps

出现同时出现 QuorumPeerMain 和 Kafka 则代表服务启动成功,如下图所示

测试集群工作状态

在 hadoop01 上创建 topic:

/export/servers/kafka/bin/kafka-topics.sh --create --bootstrap-server hadoop01:9092,hadoop02:9092,hadoop03:9092 --replication-factor 3 --partitions 3 --topic my-test-topic

查看 topic 描述确认分区和副本分配情况

/export/servers/kafka/bin/kafka-topics.sh --describe --bootstrap-server hadoop01:9092 --topic my-test-topic

验证生产消费端是否消息互通

hadoop01(生产者):

/export/servers/kafka/bin/kafka-console-producer.sh --bootstrap-server hadoop01:9092 --topic my-test-topic

hadoop02(消费者):

/export/servers/kafka/bin/kafka-console-consumer.sh --bootstrap-server hadoop02:9092 --topic my-test-topic --from-beginning

hadoo03(消费者):

/export/servers/kafka/bin/kafka-console-consumer.sh --bootstrap-server hadoop03:9092 --topic my-test-topic --from-beginning

测试集群状态

在 hadoop01 输入数据,在 hadoop02、hadoop03 查看数据,若全部互通则代表 kafka 集群正常运行,如下图所示

喜欢的话,留下你的评论吧~

... 访问量
© 2026 跨越星轨的客 @Hoshiumi
Powered by theme astro-koharu · Inspired by Shoka