在银河麒麟系统上部署kafka必须先确认架构(arm需毕昇jdk 17,x86_64可选openjdk 11)、java兼容性及部署场景,再按单机内置zk、kraft免zk或离线rpm三路径执行,漏掉arch验证、java_home配置、数据目录授权或kraft元数据初始化均会导致启动失败。

在银河麒麟操作系统上安装和配置Kafka服务,需先确认系统架构(ARM/aarch64或x86_64)、已有Java环境是否兼容、是否用于单机测试或生产集群——不同场景对应完全不同的部署路径,跳过环境核验直接解压启动,90%概率会卡在java.lang.UnsupportedClassVersionError或ZooKeeper连接超时。
验证并准备Java运行环境
银河麒麟V10默认可能预装OpenJDK 11,但Kafka 3.5+在ARM平台必须使用毕昇JDK 17;若为x86_64且仅做单机测试,OpenJDK 11可直接复用。
执行arch命令:输出aarch64则必须安装毕昇JDK;输出x86_64可选OpenJDK 11或毕昇JDK 17。
检查当前Java:java -version。若无输出或版本低于11,立即中断后续操作——Kafka 3.x无法在Java 8下启动。
ARM平台专用安装步骤:
卸载冲突JDK:sudo yum -y remove java-1.8.0-* java-11.*
下载并解压毕昇JDK 17 ARM版:sudo mkdir -p /opt/soft/java && cd /opt/soft/java && wget https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_jdk/bisheng-jdk-17.0.8-linux-aarch64.tar.gz && sudo tar -zxf bisheng-jdk-17.0.8-linux-aarch64.tar.gz
建立软链接并配置全局环境变量:sudo ln -snf /opt/soft/java/bisheng-jdk-17.0.8 /opt/soft/java/java → echo "export JAVA_HOME=/opt/soft/java/java" | sudo tee -a /etc/profile → echo "export PATH=\$PATH:\$JAVA_HOME/bin" | sudo tee -a /etc/profile → source /etc/profile
【关键验证】执行java -version,输出必须含bisheng-jdk-17.0.8和aarch64字样,缺一不可。
选择部署模式并下载Kafka
单机快速验证选方法一,生产环境或ARM集群必须用方法二,离线环境强制用方法三。
方法一:OpenJDK 11 + 内置ZooKeeper(仅限x86_64单机)
下载地址:wget https://mirrors.huaweicloud.com/apache/kafka/3.9.0/kafka_2.12-3.9.0.tgz → 解压到/usr/local/kafka → 创建软链接ln -sf kafka_2.12-3.9.0 kafka。
方法二:Kraft模式免ZooKeeper(ARM/x86_64集群首选)
必须下载Kafka 3.3+版本,如kafka_2.12-3.5.1.tgz;解压后目录结构必须保留config/kraft/子目录,缺失则无法启用Kraft。
方法三:离线RPM包部署(无外网服务器)
从华为云镜像站下载kafka-3.5.1-1.el8.noarch.rpm及配套python3-kafka-2.0.2-1.el8.noarch.rpm,用rpm -ivh *.rpm安装;此方式自动创建/etc/kafka/配置目录和systemd服务单元。
配置并启动服务
第一步:创建数据目录并赋权
执行sudo mkdir -p /var/kafka-logs && sudo chown -R $(whoami):$(whoami) /var/kafka-logs。这一步漏掉会导致kafka-server-start.sh静默失败,日志中无任何错误提示。
第二步:编辑核心配置文件
单机模式修改/usr/local/kafka/config/server.properties:设置broker.id=0、listeners=PLAINTEXT://0.0.0.0:9092、advertised.listeners=PLAINTEXT://本机IP:9092(【必须填真实IP,不能写localhost】)、zookeeper.connect=localhost:2181。
Kraft模式修改/opt/soft/kafka/config/kraft/server.properties:设置process.roles=broker,controller、node.id=1、controller.quorum.voters=1@本机主机名:9093、listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093。
第三步:初始化元数据(Kraft模式独有)
执行/opt/soft/kafka/bin/kafka-storage.sh format -t $(/opt/soft/kafka/bin/kafka-storage.sh random-uuid) -c /opt/soft/kafka/config/kraft/server.properties。此命令生成meta.properties,未执行则启动报错No meta.properties found。
第四步:启动服务
单机模式:/usr/local/kafka/bin/zookeeper-server-start.sh -daemon /usr/local/kafka/config/zookeeper.properties → 等3秒 → /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties。
Kraft模式:sudo -u kafka /opt/soft/kafka/bin/kafka-server-start.sh -daemon /opt/soft/kafka/config/kraft/server.properties。










