You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境Kafka创建主题时出现JVM退出代码1错误求助

Kafka创建主题报错ERROR Exiting JVM with code 1 (org.apache.zookeeper.util.ServiceUtils) - Ubuntu vs RHEL/CentOS环境差异排查

问题描述

在Ubuntu系统部署的Kafka服务器上执行主题创建命令时,触发以下错误:

ERROR Exiting JVM with code 1 (org.apache.zookeeper.util.ServiceUtils)

同一套Kafka程序在另一台使用YUM安装OpenJDK的Linux服务器(如CentOS/RHEL)上运行完全正常,无此报错。

环境差异

  • Ubuntu:通过sudo apt-get install openjdk-8-jre安装JRE,已配置环境变量
  • 正常Linux服务器:通过sudo yum install java-1.8.0-openjdk安装完整JDK

使用的主题创建命令

bin/kafka-topics.sh --create --topic zootest --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1

排查思路与解决建议

1. 补全JDK组件

Ubuntu的openjdk-8-jre仅包含运行时环境,而YUM安装的java-1.8.0-openjdk默认包含JDK开发组件。Kafka部分脚本依赖JDK工具类,尝试安装完整JDK:

sudo apt-get install openjdk-8-jdk

安装后修改JAVA_HOME指向JDK目录(如/usr/lib/jvm/java-8-openjdk-amd64),重启Kafka服务重试。

2. 验证ZooKeeper连接与权限

  • 检查config/server.properties中的zookeeper.connect参数是否与正常服务器一致,确认Ubuntu上ZooKeeper服务正常运行、端口可访问。
  • 确保Kafka运行用户对ZooKeeper数据目录、Kafka日志目录有读写权限,避免用sudo执行主题创建命令(权限过高可能导致目录访问异常)。

3. 对齐JVM环境变量

  • 对比两台服务器的JAVA_HOME、PATH配置:执行echo $JAVA_HOME和java -version确认版本一致,Ubuntu需确保JAVA_HOME指向完整JDK路径而非JRE子目录。
  • 检查bin/kafka-server-start.sh中的JVM参数,重点对比内存分配(-Xmx/-Xms)、安全策略配置,Ubuntu可能因默认JVM参数限制导致启动失败。

4. 获取详细报错信息

  • 查看Kafka日志(默认logs/server.log)和ZooKeeper日志,定位具体错误堆栈(如连接失败、依赖缺失)。
  • 执行命令时添加--verbose参数输出调试信息:
bin/kafka-topics.sh --create --topic zootest --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --verbose

5. 检查系统依赖库

Ubuntu与RHEL/CentOS系统依赖库存在差异,检查是否缺少Kafka/ZooKeeper依赖的系统库(如libssl):

ldd /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libnio.so

若缺失依赖,安装对应库(如sudo apt-get install libssl-dev)后重试。

内容的提问来源于stack exchange,提问作者Naren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:07:10