Kafka 单节点 环境搭建

Kafka 集群搭建指南

版本说明

kafka 3.9.1

0. 硬盘分区处理

# 若硬盘已分区需先删除原分区
wipefs -a -f /dev/sda

注:路径根据实际修改

1. 硬盘格式化与挂载

lsblk                        # 检测磁盘(假设磁盘为/dev/sdb)
pvcreate /dev/sdb            # 创建物理卷
vgcreate kafka_vg /dev/sdb   # 创建卷组
lvcreate -l +100%free -n kafka_lv kafka_vg  # 创建逻辑卷
mkfs.xfs /dev/kafka_vg/kafka_lv             # 格式化XFS文件系统
mkdir /kafka                                # 在根目录创建挂载点
mount /dev/kafka_vg/kafka_lv /kafka         # 挂载到/kafka

# 设置开机自动挂载
echo "/dev/kafka_vg/kafka_lv /kafka xfs defaults 0 0" >> /etc/fstab
mount -a && df -h            # 验证挂载

2. 目录规划

cd /kafka          # 创建根目录
# 将kafka安装包(kafka_2.13-3.9.1.tgz)拷贝到/kafka
cp /your/file/path/kafka_2.13-3.9.1.tgz /kafka/
tar -zxvf kafka_2.13-3.9.1.tgz  # 解压安装包

3. 环境依赖

dnf install -y java-17-openjdk  # 安装OpenJDK17

注:Kafka在OpenJDK上做过兼容性测试,兼容性最优

4. 用户设置

sudo useradd -r -m -d /kafka -s /bin/bash kafka  # 创建系统用户(-r参数)
sudo chown -R kafka:kafka /kafka  # 授权目录

5. Kafka配置

编辑配置文件:/kafka/kafka_2.13-3.9.1/config/kraft/server.properties

# 监听端点配置
listeners=PLAINTEXT://:9092,PLAINTEXT_INTERNAL://172.17.90.111:9094,CONTROLLER://:9093

# 服务端点公告
advertised.listeners=PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://172.17.90.111:9094,CONTROLLER://localhost:9093

# 安全协议映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT,PLAINTEXT_PUBIC:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

# 日志存储目录
log.dirs=/kafka/kafka_2.13-3.9.1/kraft-combined-logs

注:IP地址请根据网卡对应的IP进行修改

6. KRaft模式初始化

运行脚本

cd /kafka/kafka_2.13-3.9.1
./bin/kafka-storage.sh random-uuid  # 生成UUID (示例: fWDamvz8T0-dLH0IFQP2Wg)

# 格式化存储
./bin/kafka-storage.sh format --standalone \
  -t fWDamvz8T0-dLH0IFQP2Wg \
  -c config/kraft/server.properties

7. 测试启动

# 启动服务
sudo -u kafka bin/kafka-server-start.sh config/kraft/server.properties

# 停止服务
sudo -u kafka bin/kafka-server-stop.sh
或
ctrl^c

8. 系统服务配置

创建并编辑服务文件:
vi /etc/systemd/system/kafka.service

[Unit]
Description=Apache Kafka Server
After=network.target

[Service]
User=kafka
Group=kafka
ExecStart=/kafka/kafka_2.13-3.9.1/bin/kafka-server-start.sh /kafka/kafka_2.13-3.9.1/config/kraft/server.properties
ExecStop=/kafka/kafka_2.13-3.9.1/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=10
StartLimitBurst=5
StartLimitIntervalSec=300 #限制每5分钟最多重启5次 防止大量报错日志占满kafka空间
LimitNOFILE=1000000

[Install]
WantedBy=multi-user.target

9. 关闭SELinux (可选)

# 检查SELinux状态
sudo vim /etc/selinux/config

# 修改以下参数后重启生效
SELINUX=disabled

配置文件说明:

  • enforcing:强制模式
  • permissive:仅警告不拦截
  • disabled:完全禁用
reboot # 重新启动

10. 启动服务

sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

手动安装Java可能出现问题(适用于 使用apt包管理工具的系统)

● kafka.service - Apache Kafka Server
     Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2026-02-27 15:55:39 CST; 2s ago
    Process: 30804 ExecStart=/data/kafka/kafka_2.13-3.9.1/bin/kafka-server-start.sh /data/kafka/kafka_2.13-3.9.1/config/kraft/server.properties (code=exited, status=127)
   Main PID: 30804 (code=exited, status=127)

2月 27 15:55:39 guan-pc systemd[1]: kafka.service: Main process exited, code=exited, status=127/n/a
2月 27 15:55:39 guan-pc kafka-server-start.sh[30804]: /data/kafka/kafka_2.13-3.9.1/bin/kafka-run-class.sh: 第 353 行:exec: java:未找到
2月 27 15:55:39 guan-pc systemd[1]: kafka.service: Failed with result 'exit-code'.

需要按一下步骤进行处理

#1. 查询配置的Java环境变量路径
sudo -u kafka which java

#2. 在 systemd 服务里显式指定 Java
sudo systemctl edit kafka

# 加入以下内容
[Service]
Environment="JAVA_HOME=/usr/local/jdk-17.0.12"
Environment="PATH=/usr/local/jdk-17.0.12/bin:/usr/bin:/bin"
# 注:请根据步骤1的输出进行路径的替换

#3. 重新加载配置文件
sudo systemctl daemon-reload

#4. 重新启动kafka
sudo systemctl restart kafka

11. 连接验证

使用客户端工具(如 Explore Offset 3.0)连接测试:

  • 外部访问地址:172.17.90.111:9094
  • 本地地址:localhost:9092
posted @ 2025-06-16 13:21  BlackSnow  阅读(300)  评论(0)    收藏  举报