Ubuntu 22.04 安装 Apache Kyuubi 1.12.0 指南

从 0 到 1 在 Ubuntu 22.04 上安装 Apache Kyuubi 1.12.0(JDK 17、Spark 3.5.8 引擎、kyuubi-defaults 配置、JVM 堆限制、systemd 开机自启、beeline JDBC 连接实测与 FAQ、卸载)。

Apache KyuubiApache Kyuubi2026/10/12

Ubuntu 22.04 安装 Apache Kyuubi 1.12.0 指南

目标:在 Ubuntu 22.04 服务器上从 0 到 1 完成 Apache Kyuubi 1.12.0 的安装、配置、启动、systemd 开机自启,并用 kyuubi-beeline 通过 jdbc:hive2://localhost:10009 完成建库、建表、插入、查询的全链路实测。本文全部命令与回显均在 Ubuntu 22.04.5 LTS 实机环境实测通过,Kyuubi 安装于 /opt/kyuubi-1.12.0(软链接 /opt/kyuubi)。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64,内核 6.8.0-138-generic)
  • Java:OpenJDK 17.0.20.1(apt 安装 openjdk-17-jdk-headless,JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64)
  • Apache Kyuubi:1.12.0(binary 版,/opt/kyuubi-1.12.0,软链接 /opt/kyuubi,构建信息:Scala 2.12 / Spark 3.5.8 / Hadoop 3.4.3 / Hive 3.1.3)
  • Spark 引擎:3.5.8(/opt/spark-3.5.8-bin-hadoop3,软链接 /opt/spark,local 本地模式,不依赖 Hadoop/YARN)
  • 关键端口:10009(Thrift Binary JDBC)、10099(REST API)、10019(Prometheus 指标)、2181(Kyuubi 内嵌 ZooKeeper,服务发现用)
  • 配置文件:/opt/kyuubi/conf/kyuubi-defaults.conf、/opt/kyuubi/conf/kyuubi-env.sh
  • 日志目录:/opt/kyuubi/logs;PID 目录:/opt/kyuubi/pid;引擎工作目录:/opt/kyuubi/work
  • systemd 服务:kyuubi-server.service(/etc/systemd/system/kyuubi-server.service)
  • 实测演示账号:root / q1w2e3r4(Kyuubi 默认认证方式为 NONE,不校验密码,密码仅按客户端惯例传入)

二、前置条件

  1. 一台 Ubuntu 22.04 服务器(实测配置:32GB 内存即可,Kyuubi Server 堆内存限制在 256–512MB)。
  2. 服务器可访问互联网或国内镜像站(用于 apt 安装 JDK、下载 Kyuubi 与 Spark 安装包)。
  3. 具备 root 权限(或 sudo 权限)。
  4. 基础工具:curl、wget、net-tools(本文步骤会一并安装)。

三、版本选型说明

Kyuubi 官方下载页(kyuubi.apache.org/releases.html)显示最新稳定版为 1.12.0(发布日期 2026-07-28),本文采用该版本。官方兼容矩阵(Kyuubi 1.12.0 官方文档 Requirements):

组件角色兼容版本说明
Java运行时8、11、17本文选 JDK 17(LTS,apt 直接可装)
Kyuubi网关(Server/Engine/Beeline)1.12.0二进制包 apache-kyuubi-1.12.0-bin.tgz
SparkSQL 引擎3.3 至 3.5、4.0 至 4.2本文选 3.5.8(Kyuubi 1.12.0 默认构建对应版本,Scala 2.12)
Flink流引擎(可选)1.17 至 1.20本文不涉及
ZooKeeper高可用(可选)>= 3.4.x单机模式 Kyuubi 1.12 自动启动内嵌 ZooKeeper,无需外装

💡 说明:Kyuubi 1.12.0 二进制包内的 Spark 引擎 jar(kyuubi-spark-sql-engine_2.12)基于 Scala 2.12 构建,对应 Spark 3.x;Spark 4.x 需 Scala 2.13 构建的 Kyuubi 发行版。生产环境建议 Spark 3.5.8 与 Kyuubi 1.12.0 搭配。

四、部署步骤

4.1 配置 apt 国内镜像源并安装基础工具

将系统 apt 源切换为国内镜像(实测使用南京大学开源镜像站),并安装基础工具:

# 备份并替换 /etc/apt/sources.list 中的官方源为南京大学镜像源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's|archive.ubuntu.com|mirror.nju.edu.cn|g; s|security.ubuntu.com|mirror.nju.edu.cn|g' /etc/apt/sources.list

# 刷新索引并安装基础工具
sudo apt-get update
sudo apt-get install -y curl wget net-tools procps

实测 apt-get update 回显(节选):

Get:15 http://mirror.nju.edu.cn/ubuntu jammy-updates/universe amd64 Packages [1624 kB]
Get:16 http://mirror.nju.edu.cn/ubuntu jammy-updates/main amd64 Packages [4757 kB]
Fetched 49.0 MB in 6s (8208 kB/s)
Reading package lists... Done

4.2 安装 JDK 17

Kyuubi 1.12.0 官方支持 Java 8/11/17,Ubuntu 22.04 官方仓库自带 OpenJDK 17,直接 apt 安装:

# 安装 OpenJDK 17(headless 版本,无 GUI 依赖)
sudo apt-get install -y openjdk-17-jdk-headless

# 验证 Java 版本
java -version

实测回显:

openjdk version "17.0.20.1" 2026-08-18
OpenJDK Runtime Environment (build 17.0.20.1+1-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 17.0.20.1+1-1-22.04-Ubuntu, mixed mode, sharing)
# 确认 JAVA_HOME 实际路径(后续配置会用到)
update-alternatives --list java

实测回显:

/usr/lib/jvm/java-17-openjdk-amd64/bin/java

即 JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64。

4.3 下载 Kyuubi 与 Spark 二进制包

# 创建安装包存放目录
sudo mkdir -p /opt/packages && cd /opt/packages

# 下载 Kyuubi 1.12.0 binary 包(约 261MB)
sudo wget http://mirror.nju.edu.cn/apache/kyuubi/kyuubi-1.12.0/apache-kyuubi-1.12.0-bin.tgz

# 下载 Spark 3.5.8 包(约 383MB,作为 Kyuubi 的 SQL 引擎)
sudo wget http://mirror.nju.edu.cn/apache/spark/spark-3.5.8/spark-3.5.8-bin-hadoop3.tgz

# 从官方源获取 Kyuubi 包的 sha512 校验值并核对
curl -sL https://dlcdn.apache.org/kyuubi/kyuubi-1.12.0/apache-kyuubi-1.12.0-bin.tgz.sha512
sudo sha512sum apache-kyuubi-1.12.0-bin.tgz

实测 sha512 校验回显(两行一致即校验通过):

1d4c3276301be1b373e7606f6e25ab78472bd783a8398d845dfaa750265a843ddf871b5aaa408ef68b42e6850b48d301213539cc429343391355782e56f2875a  apache-kyuubi-1.12.0-bin.tgz
1d4c3276301be1b373e7606f6e25ab78472bd783a8398d845dfaa750265a843ddf871b5aaa408ef68b42e6850b48d301213539cc429343391355782e56f2875a  apache-kyuubi-1.12.0-bin.tgz

Spark 3.5.8 包 sha512 实测值(供核对):

5d5d2e6e111182ee1210d4a46a17ae27107c7ccc70433da0ded3d8197e027f949b00445bb5678ed0c1d5c59f12993d9b9ed12e43686d5aad89a9ec570e93a083  spark-3.5.8-bin-hadoop3.tgz

💡 说明:若内网环境无法访问 apache.org,可改用清华源 https://mirrors.tuna.tsinghua.edu.cn/apache/ 等国内镜像下载;两个包也均可从 https://dlcdn.apache.org/ 官方 CDN 获取。

4.4 解压安装 Kyuubi 与 Spark

cd /opt
# 解压 Kyuubi 到 /opt/kyuubi-1.12.0
sudo tar zxf /opt/packages/apache-kyuubi-1.12.0-bin.tgz -C /opt
# 解压 Spark 到 /opt/spark-3.5.8-bin-hadoop3
sudo tar zxf /opt/packages/spark-3.5.8-bin-hadoop3.tgz -C /opt

# 建立不带版本号的软链接,便于升级与引用
sudo ln -s /opt/kyuubi-1.12.0 /opt/kyuubi
sudo ln -s /opt/spark-3.5.8-bin-hadoop3 /opt/spark

# 查看安装结果
ls -l /opt | grep -E "kyuubi|spark"

实测回显:

lrwxrwxrwx  1 root root   18 Oct 11 14:35 kyuubi -> /opt/kyuubi-1.12.0
drwxrwxr-x 15 1001 1001 4096 Jul 21 07:41 kyuubi-1.12.0
lrwxrwxrwx  1 root root   28 Oct 11 14:35 spark -> /opt/spark-3.5.8-bin-hadoop3
drwxr-xr-x 13 1001 1001 4096 Jan 12  2026 spark-3.5.8-bin-hadoop3

查看 Kyuubi 包的构建信息(确认与官方一致):

cat /opt/kyuubi/RELEASE

实测回显:

Kyuubi 1.12.0 (git revision bca17a7b5) built for
Java 17.0.15
Scala 2.12
Flink 1.20.5
Spark 3.5.8
Kyuubi Hadoop 3.4.3
Hive 3.1.3
Build flags:

Kyuubi 安装目录结构(ls /opt/kyuubi,bin 与 conf 是最常用的两个目录):

beeline-jars  bin  charts  conf  db-scripts  docker  externals  jars  licenses  logs  pid  web-ui  work

4.5 配置环境变量

(1)系统级环境变量:为所有登录会话提供 KYUUBI_HOME 与 JAVA_HOME:

# 创建 profile 片段
sudo tee /etc/profile.d/kyuubi.sh << 'EOF'
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export KYUUBI_HOME=/opt/kyuubi
export PATH=$PATH:$KYUUBI_HOME/bin
EOF

# 使当前会话生效
source /etc/profile.d/kyuubi.sh

(2)Kyuubi 运行时环境变量:从模板复制生成 kyuubi-env.sh 并写入关键变量(该文件是 Kyuubi 启动脚本加载环境的核心入口):

# 基于模板生成 kyuubi-env.sh
cp /opt/kyuubi/conf/kyuubi-env.sh.template /opt/kyuubi/conf/kyuubi-env.sh

# 追加实测配置
sudo tee -a /opt/kyuubi/conf/kyuubi-env.sh << 'EOF'

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export SPARK_HOME=/opt/spark-3.5.8-bin-hadoop3
export KYUUBI_LOG_DIR=/opt/kyuubi/logs
export KYUUBI_PID_DIR=/opt/kyuubi/pid
export KYUUBI_JAVA_OPTS="-Xms256m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/kyuubi/logs"
EOF

关键变量说明:

变量说明
JAVA_HOMEKyuubi Server 与引擎共用的 Java 运行时
SPARK_HOMESpark 引擎发行版位置,Kyuubi 据此调用 spark-submit 拉起 SQL 引擎
KYUUBI_LOG_DIRServer 日志目录(默认 $KYUUBI_HOME/logs)
KYUUBI_PID_DIRPID 文件目录(默认 $KYUUBI_HOME/pid)
KYUUBI_JAVA_OPTSKyuubi Server 自身 JVM 参数(-Dx=y 形式),堆内存限制在此设置
KYUUBI_WORK_DIR_ROOT引擎应用工作目录根(默认 $KYUUBI_HOME/work)

⚠️ 注意:KYUUBI_JAVA_OPTS 中不要重复写 --add-opens 参数,bin/load-kyuubi-env.sh(第 70–88 行)会自动追加 JDK 17 所需的全部 --add-opens 与 -XX:+IgnoreUnrecognizedVMOptions,只需写堆内存等自有参数。

4.6 配置 kyuubi-defaults.conf

从模板复制生成主配置文件,写入单机实测配置:

cp /opt/kyuubi/conf/kyuubi-defaults.conf.template /opt/kyuubi/conf/kyuubi-defaults.conf

sudo tee /opt/kyuubi/conf/kyuubi-defaults.conf << 'EOF'
# Kyuubi Server
kyuubi.frontend.bind.host              0.0.0.0
kyuubi.frontend.protocols              THRIFT_BINARY,REST

# SQL engine (Spark)
kyuubi.engine.share.level              USER
spark.master                           local[*]
spark.driver.memory                    1g
EOF

参数说明(完整参数体系见《Apache Kyuubi 1.12.0 配置参数详解》):

参数取值说明
kyuubi.frontend.bind.host0.0.0.0监听所有网卡,允许远程客户端连接(默认为本机地址)
kyuubi.frontend.protocolsTHRIFT_BINARY,REST启用 Thrift Binary(JDBC)与 REST 两种前端协议
kyuubi.engine.share.levelUSER同用户共享一个 SQL 引擎(默认值,官方推荐)
spark.masterlocal[*]Spark 引擎以本地模式运行,不需要外部 Hadoop/YARN 集群
spark.driver.memory1gSQL 引擎(Spark Driver)堆内存

4.7 启动 Kyuubi Server 并验证

# 前台启动方式为 bin/kyuubi run,此处使用守护进程方式启动
/opt/kyuubi/bin/kyuubi start

实测回显(含 Logo 与启动日志路径):

Starting org.apache.kyuubi.server.KyuubiServer, logging to /opt/kyuubi/logs/kyuubi-root-org.apache.kyuubi.server.KyuubiServer-kyuubi-u22.out
                 ??_  _
                 | | | |  / VVVV  / ____|__   __(_)     |  __ \
                 | | | | / VVVV | (___    | |   _ _   _| |__) |
                 | | | |/ VVVV   \___ \   | |  | | | | | |  _  /
                 | | | / VVVV    ____) |  | |  | | |_| | | | \ \
                 \/_/\/_/ `/___/> \/___/   \/___/   \/___/   \/_/
                             /\___/
                             \/__\/
# 查看服务状态
/opt/kyuubi/bin/kyuubi status

实测回显:

Kyuubi is running (pid: 8728)

从日志确认版本与前端监听(日志文件名格式为 kyuubi-<用户>-<主类>-<主机名>.out):

grep -E "Version:|Initializing KyuubiTBinaryFrontend|Exposing REST endpoint" /opt/kyuubi/logs/kyuubi-root-org.apache.kyuubi.server.KyuubiServer-kyuubi-u22.out

实测回显:

2026-10-11 14:37:59.396 INFO main org.apache.kyuubi.server.KyuubiServer: Version: 1.12.0, Revision: bca17a7b5cfa0d32440832f5611f922164644943 (2026-07-21 07:19:12 +0000), Branch: HEAD, Java: 17.0.15, Scala: 2.12, Spark: 3.5.8, Hadoop: 3.4.3, Hive: 3.1.3, Flink: 1.20.5, Trino: 411
2026-10-11 14:38:03.137 INFO main org.apache.kyuubi.server.KyuubiTBinaryFrontendService: Initializing KyuubiTBinaryFrontend on 0.0.0.0:10009 with [9, 999] worker threads
2026-10-11 14:38:05.015 INFO main org.apache.kyuubi.server.KyuubiRestFrontendService: Exposing REST endpoint at: http://0.0.0.0:10099

确认监听端口(Thrift 10009、REST 10099、Prometheus 10019、内嵌 ZooKeeper 2181):

sudo netstat -tlnp | grep java

实测回显:

tcp6       0      0 172.17.0.9:2181         :::*                    LISTEN      4740/java
tcp6       0      0 :::10099                :::*                    LISTEN      4740/java
tcp6       0      0 :::10009                :::*                    LISTEN      4740/java
tcp6       0      0 :::10019                :::*                    LISTEN      4740/java

💡 说明:Kyuubi 1.12 在未配置外部 kyuubi.ha.addresses 时会自动启动内嵌 ZooKeeper(日志中出现 EmbeddedZookeeper is started at 172.17.0.9:2181,数据目录 /opt/kyuubi/embedded_zookeeper)用于服务发现,2181 端口属于正常现象;10019 为 Prometheus 指标端口。

用 jps 确认 JVM 进程:

jps

实测回显(KyuubiServer 为服务进程,SparkSubmit 为 SQL 引擎进程,首次查询后出现):

5284 Jps
4740 KyuubiServer
4922 SparkSubmit

4.8 beeline 连接实测(JDBC 全链路验证)

Kyuubi 自带 beeline 客户端脚本(bin/kyuubi-beeline,旧脚本 bin/beeline 已标记废弃并自动转发),连接地址为 jdbc:hive2://<服务IP>:10009:

# 单语句验证:SHOW DATABASES(首次连接会拉起 Spark 引擎,约需 40–60 秒)
/opt/kyuubi/bin/kyuubi-beeline -u "jdbc:hive2://localhost:10009" -n root -p q1w2e3r4 -e "SHOW DATABASES;"

实测回显(首次连接时 beeline 前部会混入引擎启动的 INFO 日志,属正常现象;结果部分如下):

+------------+
| namespace  |
+------------+
| default    |
+------------+
1 row selected (0.988 seconds)
Beeline version 1.12.0 by Apache Kyuubi
Closing: 0: jdbc:hive2://localhost:10009

多语句全链路实测(建库、建表、插入、查询):

/opt/kyuubi/bin/kyuubi-beeline -u "jdbc:hive2://localhost:10009" -n root -p q1w2e3r4 << 'EOSQL'
CREATE DATABASE IF NOT EXISTS testdb;
CREATE TABLE IF NOT EXISTS testdb.student (id INT, name STRING, age INT) USING parquet;
INSERT INTO testdb.student VALUES (1, "zhangsan", 20), (2, "lisi", 21);
SELECT * FROM testdb.student;
SHOW DATABASES;
EOSQL

实测回显(前三条 DDL/DML 返回空结果集 Result 表,随后为查询结果):

+---------+
| Result  |
+---------+
+---------+
+---------+
| Result  |
+---------+
+---------+
+---------+
| Result  |
+---------+
+---------+
+-----+-----------+------+
| id  |   name    | age  |
+-----+-----------+------+
| 1   | zhangsan  | 20   |
| 2   | lisi      | 21   |
+-----+-----------+------+
+------------+
| namespace  |
+------------+
| default    |
| testdb     |
+------------+

再验证一条简单查询与 JDBC URL 传参能力(URL 中 ;#spark.sql.shuffle.partitions=200 为会话级 Spark 参数注入):

/opt/kyuubi/bin/kyuubi-beeline -u "jdbc:hive2://localhost:10009/default;#spark.sql.shuffle.partitions=200" -n root -p q1w2e3r4 -e "SET spark.sql.shuffle.partitions;"

实测回显:

+-------------------------------+--------+
|              key              | value  |
+-------------------------------+--------+
| spark.sql.shuffle.partitions  | 200    |
+-------------------------------+--------+

💡 说明:默认认证方式为 kyuubi.authentication=NONE,-n root -p q1w2e3r4 中的用户名会作为 Kyuubi 的会话用户(决定引擎共享与数据目录归属),密码不做校验;生产环境建议启用 LDAP 或 Kerberos 认证。

五、配置说明

5.1 JVM 堆内存限制与验证

Kyuubi Server 的 JVM 堆内存在 /opt/kyuubi/conf/kyuubi-env.sh 的 KYUUBI_JAVA_OPTS 中设置(见 4.5 节),单机小内存部署建议限制在 256–512MB:

# kyuubi-env.sh 中的堆内存设置
export KYUUBI_JAVA_OPTS="-Xms256m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/kyuubi/logs"

重启服务后用 jps -v 验证实际生效值:

jps -v | grep KyuubiServer

实测回显(可见 -Xms256m -Xmx512m 已生效):

8728 KyuubiServer -Xms256m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/kyuubi/logs -XX:+IgnoreUnrecognizedVMOptions -Dio.netty.tryReflectionSetAccessible=true --add-opens=java.base/java.lang=ALL-UNNAMED

也可用 ps -ef | grep [K]yuubiServer 观察同样的启动参数。注意该限制只作用于 Kyuubi Server 进程;Spark 引擎进程的堆由 spark.driver.memory(本例 1g)控制。

5.2 systemd 开机自启

创建服务单元文件 /etc/systemd/system/kyuubi-server.service:

sudo tee /etc/systemd/system/kyuubi-server.service << 'EOF'
[Unit]
Description=Apache Kyuubi Server
After=network.target

[Service]
Type=forking
User=root
Group=root
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ExecStart=/opt/kyuubi/bin/kyuubi start
ExecStop=/opt/kyuubi/bin/kyuubi stop
Restart=on-failure
LimitNOFILE=65536
LimitNPROC=65536

[Install]
WantedBy=multi-user.target
EOF

校验单元文件语法并设置开机自启:

# 语法校验(无输出即通过,实测通过)
sudo systemd-analyze verify /etc/systemd/system/kyuubi-server.service

# 重载 unit 并设置开机自启(逐条执行)
sudo systemctl daemon-reload
sudo systemctl enable kyuubi-server
sudo systemctl start kyuubi-server

# 查看运行状态
sudo systemctl status kyuubi-server

⚠️ 注意:Type=forking 对应 bin/kyuubi start 的守护进程行为;Environment= 每行只能写一个变量。若使用非 root 运行用户,需同步修改 User=/Group=,并保证该用户对 /opt/kyuubi 目录有读写权限。

停用与查看:

sudo systemctl stop kyuubi-server
sudo systemctl disable kyuubi-server

六、注意事项

  1. 版本配套:Kyuubi 1.12.0 的 Spark 引擎 jar 基于 Scala 2.12 构建,请搭配 Spark 3.3–3.5 系列(实测 3.5.8);不要混用 Spark 4.x(Scala 2.13)。
  2. 首次查询慢:kyuubi.engine.share.level=USER 下首个会话触发引擎冷启动,实测约 40–60 秒,属正常现象;引擎常驻后查询为毫秒级返回。
  3. 端口规划:10009(JDBC)、10099(REST)、10019(Prometheus)、2181(内嵌 ZooKeeper)需在防火墙放行对应的端口。
  4. 内存预算:Kyuubi Server 堆 256–512MB + Spark 引擎 Driver 堆 1g,单机总内存 4GB 以上即可支撑功能验证;更大并发需按《配置参数详解》篇的线程池与内存参数扩容。
  5. 数据落盘位置:引擎元数据(Derby metastore_db)与表数据(spark-warehouse)默认在 /opt/kyuubi/work/root/ 下,升级或迁移时注意备份该目录。
  6. 勿重复写 --add-opens:JDK 17 运行所需的模块开放参数由启动脚本自动追加,手工重复追加会导致启动失败风险。

七、常见问题(FAQ)

Q1:首次 beeline 连接卡住或超时? 首次连接会触发 Spark 引擎冷启动(spark-submit 拉起独立 JVM),实测约 40–60 秒。可通过 tail -f /opt/kyuubi/work/root/kyuubi-spark-sql-engine.log.0 观察引擎启动进度;后续连接复用常驻引擎,速度正常。

Q2:远程机器无法连接 10009 端口? 检查 /opt/kyuubi/conf/kyuubi-defaults.conf 是否设置 kyuubi.frontend.bind.host=0.0.0.0(默认仅监听本机地址),修改后重启;再用 sudo netstat -tlnp | grep 10009 确认监听地址为 :::10009(全部网卡),并放行防火墙。

Q3:引擎启动失败如何排查? 依次查看三处:Server 日志 /opt/kyuubi/logs/kyuubi-root-org.apache.kyuubi.server.KyuubiServer-kyuubi-u22.out(搜 ERROR);引擎日志 /opt/kyuubi/work/root/kyuubi-spark-sql-engine.log.0;引擎提交记录 /opt/kyuubi/work/root/engine_operation_logs/。常见原因是 SPARK_HOME 未配置或 Java 版本不在支持范围(Kyuubi/Spark 3.5 均要求 Java 8/11/17)。

Q4:bin/kyuubi stop 提示 "Failed to stop kyuubi after 10 seconds"? 多为进程已退出但残留状态导致。先查 PID 文件 /opt/kyuubi/pid/kyuubi-root-org.apache.kyuubi.server.KyuubiServer.pid,确认进程不存在后删除该 PID 文件即可;若进程确实存活,用 kill -9 $(cat /opt/kyuubi/pid/kyuubi-root-org.apache.kyuubi.server.KyuubiServer.pid) 强杀后删除 PID 文件,再重新启动。

Q5:2181 端口被占用导致启动失败? Kyuubi 1.12 默认自动启动内嵌 ZooKeeper(2181)。若主机已有 ZooKeeper,可在 kyuubi-defaults.conf 配置 kyuubi.ha.addresses 指向外部 ZooKeeper 集群(如 zk1:2181,zk2:2181,zk3:2181),Kyuubi 将改用外部服务发现而不再启动内嵌实例。

Q6:如何修改 Spark 引擎的内存与参数? 在 kyuubi-defaults.conf 写原生 Spark 参数即可(如 spark.driver.memory 1g),Kyuubi 会在拉起引擎时透传;会话级参数可通过 JDBC URL(;#参数=值)或 SET 语句覆盖,实测验证见 4.8 节。

八、卸载方式

# 1. 停止服务并取消开机自启
sudo systemctl stop kyuubi-server
sudo systemctl disable kyuubi-server

# 2. 删除 systemd 单元文件并重载
sudo rm -f /etc/systemd/system/kyuubi-server.service
sudo systemctl daemon-reload

# 3. 若服务仍由脚本拉起,手动停止
/opt/kyuubi/bin/kyuubi stop

# 4. 删除环境变量片段并重载 shell 配置
sudo rm -f /etc/profile.d/kyuubi.sh

# 5. 删除安装目录与安装包
sudo rm -rf /opt/kyuubi-1.12.0 /opt/kyuubi
sudo rm -rf /opt/spark-3.5.8-bin-hadoop3 /opt/spark
sudo rm -rf /opt/packages/apache-kyuubi-1.12.0-bin.tgz /opt/packages/spark-3.5.8-bin-hadoop3.tgz

# 6. (可选)如不再需要 Java 环境,卸载 OpenJDK 17
sudo apt-get remove -y openjdk-17-jdk-headless
sudo apt-get autoremove -y

九、参考链接