关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭selinux
setenforce 0 #(临时生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #(永久生效)
rpm -qa|grep jdk #如果安装先卸载jdk
下载jdk:
官网:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
选择jdk版本上传到服务器解压,这里我用的是jdk1.8.0版本
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版本查看是否安装成功)
Kafka官网下载:http://kafka.apache.org/downloads
或者wget,下载 https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz
cd /usr/local
mkdir kafka-cluster
tar zxvf kafka_2.13-4.0.0.tgz
mv kafka_2.13-4.0.0 kafka
cd /usr/local/kafka-cluster/kafka/config/
cp server.properties kraft-server.properties
vi kraft-server.properties
node.id=1节点修改内容如下:
node.id=1
[email protected]:9093,[email protected]:9093,[email protected]: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
其他节点配置相同,除以下内容:
node.id=2 #唯一 (确定id值是唯一)
listeners=PLAINTEXT://192.168.1.152:9092,CONTROLLER://192.168.1.152:9093 #修改为本机地址
cd /usr/local/kafka-cluster/kafka
在任意节点运行:
bin/kafka-storage.sh random-uuid
得到类似结果:
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已经是部署完成了
vim /usr/local/kafka-cluster/kafka/bin/kafka-server-start.sh
在这个字段加入export JMX_PORT="9999"
cd /lib/systemd/system/
vim kafka.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
保存退出,刷新一下
systemctl daemon-reload
systemctl start kafka
systemctl enable kafka
systemctl status kafka