465 字
2 分钟
Kafka集群部署

Kafka集群部署#

系统配置调整#

关闭防火墙#

Terminal window
sudo systemctl stop ufw
sudo systemctl disable ufw

资源配置调整#

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

Terminal window
sudo vi /etc/security/limits.conf

添加以下内容:

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

安装与配置Kafka集群#

下载并解压#

Terminal window
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文件

Terminal window
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
Terminal window
vi /export/servers/kafka/bin/kafka-server-start.sh

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

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

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

Terminal window
export JAVA_HOME=/export/servers/jdk

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

Terminal window
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节点

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

进入hadoop02:

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

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

Terminal window
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:

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

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

Terminal window
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服务#

启动节点

Terminal window
zkServer.sh start

检查节点角色(Leader/Follower)

Terminal window
zkServer.sh status

启动Kafka集群#

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

Terminal window
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

测试#

Terminal window
jps

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

image-20260727222551750

测试集群工作状态#

在hadoop01上创建topic:

Terminal window
/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描述确认分区和副本分配情况#

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

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

hadoop01(生产者):

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

hadoop02(消费者):

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

hadoo03(消费者):

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

测试集群状态#

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

image-20260727222719584

image-20260727222722576

image-20260727222727015

Kafka集群部署
https://mizuki.mysqil.com/posts/kafka部署/
作者
SuifengFlying
发布于
2025-11-21
许可协议
CC BY-NC-SA 4.0

Big Data Deployment

9 / 12

Related articles

部分信息可能已经过时

封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00