Kafka 4.0.0集群部署

Kafka 4.0.0集群部署

1.1 关闭防火墙和 selinux

关闭防火墙

shell 复制代码
systemctl stop firewalld.service
systemctl disable firewalld.service

关闭selinux

shell 复制代码
setenforce 0 #(临时生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #(永久生效)

1.2 检查是否已经安装OpenJDK

shell 复制代码
rpm -qa|grep jdk  #如果安装先卸载jdk

下载jdk:

shell 复制代码
官网:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

选择jdk版本上传到服务器解压,这里我用的是jdk1.8.0版本

shell 复制代码
tar -xvf jdk-24.0.1-linux-x64.tar.gz
mv /usr/local/jdk-24.0.1 /usr/local

vim  /etc/profile

export JAVA_HOME=/usr/local//usr/local/jdk-24.0.1
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

java -version (检查一下jdk版本查看是否安装成功)

1.3 Kafka集群安装

1.3.1 下载安装包

Kafka官网下载:http://kafka.apache.org/downloads

或者wget,下载 https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz

1.3.2 新建一个Kafka-cluster目录,将安装Kafka-cluster目录下

复制代码
cd /usr/local
mkdir kafka-cluster

1.3.3 解压安装包,重命名

复制代码
tar zxvf kafka_2.13-4.0.0.tgz
mv kafka_2.13-4.0.0 kafka

1.3.4 修改配置文件

shell 复制代码
cd /usr/local/kafka-cluster/kafka/config/
cp server.properties kraft-server.properties
vi kraft-server.properties

node.id=1节点修改内容如下:

properties 复制代码
node.id=1

controller.quorum.voters=1@192.168.1.151:9093,2@192.168.1.152:9093,3@192.168.1.153:9093
controller.quorum.bootstrap.servers=192.168.1.151:9093,192.168.1.152:9093,192.168.1.153:9093

listeners=PLAINTEXT://192.168.1.151:9092,CONTROLLER://192.168.1.151:9093
inter.broker.listener.name=PLAINTEXT

advertised.listeners=PLAINTEXT://192.168.1.151:9092,CONTROLLER://192.168.1.151:9093
controller.listener.names=CONTROLLER

log.dirs=/data/kafka-logs

1.3.5 其他节点配置

其他节点配置相同,除以下内容:

properties 复制代码
node.id=2  #唯一 (确定id值是唯一)
listeners=PLAINTEXT://192.168.1.152:9092,CONTROLLER://192.168.1.152:9093  #修改为本机地址

1.3.6 启动

复制代码
cd /usr/local/kafka-cluster/kafka

在任意节点运行:

shell 复制代码
bin/kafka-storage.sh random-uuid

得到类似结果:

shell 复制代码
e3b24c36-7e24-4173-9732-bd92ad45b3ab
复制代码
# 示例(node.id 为 1):
bin/kafka-storage.sh format \
  --cluster-id e3b24c36-7e24-4173-9732-bd92ad45b3ab \
  --config config/kraft-server.properties

cd /usr/local/kafka-cluster/kafka/bin
bin/kafka-server-start.sh config/server.properties
可以发现在窗口启动之后是一个阻塞进程,会阻塞当前窗口,我们可以重新打开一个窗口进行接下来的操作,或者在启动kafka的时候使用 -daemon 参数将它声明为守护进程后台运行。
bin/kafka-server-start.sh  -daemon config/server.properties

到这一步kafka已经是部署完成了

1.3.7 使用JMX监控Kafka

复制代码
vim /usr/local/kafka-cluster/kafka/bin/kafka-server-start.sh
在这个字段加入export JMX_PORT="9999"

1.3.8 Kafka自启动设置

shell 复制代码
cd /lib/systemd/system/
vim kafka.service

添加一下内容:

service 复制代码
[Unit]
Description=Apache Kafka Server (KRaft mode)
After=network.target

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk"
ExecStart=/usr/local/kafka-cluster/kafka/bin/kafka-server-start.sh /usr/local/kafka-cluster/kafka/config/kraft-server.properties
ExecStop=/usr/local/kafka-cluster/kafka/bin/kafka-server-stop.sh
Restart=on-failure
User=root
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

保存退出,刷新一下

shell 复制代码
systemctl daemon-reload
systemctl start kafka
systemctl enable kafka
systemctl status kafka
相关推荐
johnny_hhh12 分钟前
Confluent 单节点部署配置
运维·阿里云·zookeeper·kafka·centos·数据可视化
鲨莎分不晴17 分钟前
大数据的“大动脉”:深度剖析 Apache Kafka 的高性能之道
大数据·kafka·apache
魂之木18 分钟前
【零基础教程】基于Docker的RabbitMQ部署方案
分布式·docker·微服务·rabbitmq
oMcLin19 分钟前
如何在 RHEL 7 上通过配置 Apache Kafka 集群的分区机制,提升消息传递系统的吞吐量与数据流处理能力?
分布式·kafka·apache
红队it25 分钟前
【Spark+Hadoop】基于spark+hadoop游戏评论数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
大数据·hadoop·分布式·算法·游戏·数据分析·spark
前端世界26 分钟前
鸿蒙系统中的分布式任务依赖是如何处理的?原理、方案与实践
分布式·华为·harmonyos
小雨下雨的雨28 分钟前
Flutter跨平台开发实战: 鸿蒙与循环交互艺术:分布式联动与多端状态同步
分布式·flutter·华为·交互·harmonyos·鸿蒙系统
DeepFlow 零侵扰全栈可观测29 分钟前
DeepFlow 实践:利用 eBPF 实现覆盖从网关到数据库的全栈分布式追踪
网络·分布式·云原生·云计算
yumgpkpm1 小时前
华为 GaussDB 商业版(本地部署)部署方案及相关步骤
hive·hadoop·redis·elasticsearch·华为·kafka·gaussdb
俊哥大数据1 小时前
【项目9】 基于Spark网站流量日志大数据实时分析系统
大数据·分布式·spark