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、卸载)。
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,不校验密码,密码仅按客户端惯例传入)
二、前置条件
- 一台 Ubuntu 22.04 服务器(实测配置:32GB 内存即可,Kyuubi Server 堆内存限制在 256–512MB)。
- 服务器可访问互联网或国内镜像站(用于 apt 安装 JDK、下载 Kyuubi 与 Spark 安装包)。
- 具备 root 权限(或 sudo 权限)。
- 基础工具: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 |
| Spark | SQL 引擎 | 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_HOME | Kyuubi Server 与引擎共用的 Java 运行时 |
SPARK_HOME | Spark 引擎发行版位置,Kyuubi 据此调用 spark-submit 拉起 SQL 引擎 |
KYUUBI_LOG_DIR | Server 日志目录(默认 $KYUUBI_HOME/logs) |
KYUUBI_PID_DIR | PID 文件目录(默认 $KYUUBI_HOME/pid) |
KYUUBI_JAVA_OPTS | Kyuubi 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.host | 0.0.0.0 | 监听所有网卡,允许远程客户端连接(默认为本机地址) |
kyuubi.frontend.protocols | THRIFT_BINARY,REST | 启用 Thrift Binary(JDBC)与 REST 两种前端协议 |
kyuubi.engine.share.level | USER | 同用户共享一个 SQL 引擎(默认值,官方推荐) |
spark.master | local[*] | Spark 引擎以本地模式运行,不需要外部 Hadoop/YARN 集群 |
spark.driver.memory | 1g | SQL 引擎(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
六、注意事项
- 版本配套:Kyuubi 1.12.0 的 Spark 引擎 jar 基于 Scala 2.12 构建,请搭配 Spark 3.3–3.5 系列(实测 3.5.8);不要混用 Spark 4.x(Scala 2.13)。
- 首次查询慢:
kyuubi.engine.share.level=USER下首个会话触发引擎冷启动,实测约 40–60 秒,属正常现象;引擎常驻后查询为毫秒级返回。 - 端口规划:10009(JDBC)、10099(REST)、10019(Prometheus)、2181(内嵌 ZooKeeper)需在防火墙放行对应的端口。
- 内存预算:Kyuubi Server 堆 256–512MB + Spark 引擎 Driver 堆 1g,单机总内存 4GB 以上即可支撑功能验证;更大并发需按《配置参数详解》篇的线程池与内存参数扩容。
- 数据落盘位置:引擎元数据(Derby
metastore_db)与表数据(spark-warehouse)默认在/opt/kyuubi/work/root/下,升级或迁移时注意备份该目录。 - 勿重复写 --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
九、参考链接
- Kyuubi 官方下载页:https://kyuubi.apache.org/releases.html
- Kyuubi 1.12.0 官方文档(Quick Start / Settings):https://kyuubi.apache.org/docs/latest/
- Kyuubi GitHub 仓库:https://github.com/apache/kyuubi
- Spark 3.5.8 官方文档:https://spark.apache.org/docs/3.5.8/
- OpenJDK(Ubuntu 官方仓库):https://packages.ubuntu.com/jammy/openjdk-17-jdk-headless
- 相关文档:《Apache Kyuubi 1.12.0 配置参数详解》《Apache Kyuubi 1.12.0 常用 CLI 命令与工具详解》《Apache Kyuubi 1.12.0 Docker Compose 部署指南》