Apache Kyuubi 1.12.0 介绍与选型指南
Apache Kyuubi 1.12.0 认知篇:多租户 Thrift JDBC/ODBC 网关的引擎托管架构、多引擎兼容矩阵(Spark/Flink/Trino/Doris)、官方快速上手示例与 Hive HiveServer2/Trino/Spark Thrift Server 选型对比,信息基于官方来源联网溯源(查询日期 2026-10-18)。
Apache Kyuubi 1.12.0 介绍与选型指南
目标:本篇为 A1 认知篇,基于 Apache Kyuubi 官方网站、GitHub 官方仓库 Release 与官方文档联网溯源整理(查询日期 2026-10-18),不涉及本地安装实测;本地安装实测属 B1 安装指南职责。
一、信息基准
1.1 查询日期与版本依据
| 项目 | 内容 |
|---|---|
| 查询日期 | 2026-10-18 |
| 本次介绍版本 | Apache Kyuubi 1.12.0(官方最新稳定版) |
| 版本依据一 | GitHub 官方仓库 apache/kyuubi releases/latest 重定向实查:tag v1.12.0 |
| 版本依据二 | GitHub Releases Atom feed 交叉取证:v1.12.0 发布时间 2026-07-28 |
| 兼容矩阵依据 | Kyuubi 官方文档 v1.12.0 版 Getting Started 实查(kyuubi.readthedocs.io/en/v1.12.0) |
1.2 官方来源清单
| 来源 | URL |
|---|---|
| 项目主页 | https://kyuubi.apache.org/ |
| 官方文档(v1.12.0) | https://kyuubi.readthedocs.io/en/v1.12.0/ |
| Getting Started(快速上手出处) | https://kyuubi.readthedocs.io/en/v1.12.0/quick_start/quick_start.html |
| GitHub 官方仓库 | https://github.com/apache/kyuubi |
| Releases(版本溯源) | https://github.com/apache/kyuubi/releases |
| 官方下载页 | https://kyuubi.apache.org/download.html |
二、软件概述
本文介绍 Apache Kyuubi 1.12.0(官方最新稳定版,2026-07-28 发布)。Kyuubi 官方定位为"Multi-tenant Thrift JDBC/ODBC server"——多租户的 Thrift JDBC/ODBC 网关服务(来源:kyuubi.apache.org 站点标题,查询日期 2026-10-18)。它在客户端与各类分布式 SQL 引擎(Spark、Flink、Trino、Doris 等)之间提供统一的 JDBC 接入层:客户端用 beeline/JDBC 连接 Kyuubi,Kyuubi 按用户、按会话管理底层引擎的生命周期,实现多租户隔离、引擎复用与高可用。
- 许可:Apache License 2.0(仓库页面 license 字段实查)。
- 维护方:Apache 软件基金会顶级项目(早期版本 v1.5.2 及以前为 -incubating 孵化版本,官方文档版本索引可查)。
- 形态:JVM 常驻服务进程(bin/kyuubi 启停),配套 kyuubi-beeline 客户端。
- 社区活跃度:GitHub 2,370 stars(仓库页面 stargazerCount 字段实查,查询日期 2026-10-18)。
- 版本节奏:1.10.3(2026-01-02)→ 1.11.0(2026-02-14)→ 1.11.1(2026-04-13)→ 1.12.0(2026-07-28),年均 3~4 个功能/补丁版本(GitHub Releases Atom feed 实查)。
三、核心架构与核心概念
3.1 架构组件
官方 Getting Started 对快速启动形态给出的三要素(客户端/服务端/引擎)即 Kyuubi 的核心链路(来源:v1.12.0 官方文档,查询日期 2026-10-18):
| 构件 | 职责 |
|---|---|
| Kyuubi Server | 网关服务本体,接受 Thrift JDBC/ODBC 连接,管理会话与引擎 |
| Kyuubi Engine(SQL 引擎) | 真正执行查询的计算环境,官方文档以 Spark 为演示,亦支持 Flink、Trino、Doris 等引擎 |
| kyuubi-beeline | 官方交付的命令行客户端,提供与 Apache Hive beeline 类似的使用体验 |
| ZooKeeper(可选) | 官方兼容矩阵标注 HA 要求 ZooKeeper >= 3.4.x,用于负载均衡与高可用 |
3.2 核心概念
- 多租户:按连接用户隔离引擎实例与运行目录(work 目录为各会话子进程工作根目录),实现资源与权限的租户边界。
- 引擎即服务:Kyuubi Server 按需拉起/复用引擎子进程(externals/engines 目录内置各类 SQL 引擎包)。
- 统一 JDBC 入口:客户端只需
jdbc:kyuubi://host:10009/一种 URL 形态,底层引擎切换对应用透明。 - 多引擎支持:Spark、Flink、Trino、Doris、Hive(元数据)等引擎按配置接入,可组合构建流批一体数仓(官方文档表述)。
四、功能特性
以下特性均可在官方文档 v1.12.0 Getting Started 查证(查询日期 2026-10-18):
| 特性域 | 说明 |
|---|---|
| 多租户网关 | Thrift JDBC/ODBC 多租户服务,按用户管理引擎 |
| 多引擎 | Spark 3.3 |
| Java 兼容 | JRE 8、11、17(官方以 JDK8 构建) |
| 高可用 | ZooKeeper >= 3.4.x 支持负载均衡与 HA |
| 客户端工具 | kyuubi-beeline 提供 Hive beeline 同款体验,支持 --help 查看用法 |
| 前台运行模式 | bin/kyuubi run 可前台运行,便于 supervisord 等监管系统接管 |
五、快速上手(引自官方文档,不本地实测)
以下步骤引自 Kyuubi 官方文档 v1.12.0 "Getting Started"(原文引自 https://kyuubi.readthedocs.io/en/v1.12.0/quick_start/quick_start.html ,查询日期 2026-10-18):
- 解压发行包(官方原文命令与目录说明节选):
tar zxf apache-kyuubi-1.12.0-bin.tgz
解压后包含 bin(kyuubi 启动脚本入口)、conf(kyuubi-defaults.conf.template、kyuubi-env.sh.template 等)、externals/engines(各类 SQL 引擎包)、jars、logs、pid、work 等目录。
- 配置环境(官方原文示例):向 conf/kyuubi-env.sh 写入 JAVA_HOME 与 SPARK_HOME:
echo 'export JAVA_HOME=/path/to/java' >> conf/kyuubi-env.sh
echo 'export SPARK_HOME=/path/to/spark' >> conf/kyuubi-env.sh
- 启动 Kyuubi(官方原文命令):
bin/kyuubi start
官方说明:启动成功后 PID 写入 pid/ 目录,并可从日志 logs/kyuubi-<username>-org.apache.kyuubi.server.KyuubiServer-<hostname>.out 获取 JDBC 连接地址,形如 Starting and exposing JDBC connection at: jdbc:kyuubi://localhost:10009/。
- 客户端连接并执行查询(官方原文命令与回显节选):
bin/kyuubi-beeline -u 'jdbc:kyuubi://localhost:10009/' -n apache
连接后在 kyuubi-beeline 控制台执行 SHOW DATABASES;,官方文档回显节选:
+------------+
| namespace |
+------------+
| default |
+------------+
1 row selected ( 0.2 seconds )
说明:官方矩阵要求预先安装 JVM(JRE 8/11/17)与 Spark 发行版(3.3
3.5、4.04.2);HA 场景另需 ZooKeeper(>=3.4.x)。本地部署实测属 B1 安装指南职责。
六、适用场景与限制
6.1 适用场景
- 多租户 Spark/Flink SQL 服务化:为数十上百个业务方提供统一 JDBC 入口,按用户隔离引擎实例,避免共享 Spark Thrift Server 的资源互扰。
- 数仓网关标准化:以 Hive beeline 同款体验承接存量 Hive JDBC 客户端,平滑切换底层计算引擎。
- 流批一体查询底座:官方文档指出可组合 Kyuubi + Spark + Flink 构建流式数仓,并以 ZooKeeper 做负载均衡。
- 多引擎统一接入:同一网关接入 Spark、Flink、Trino、Doris 等,客户端无需感知引擎差异。
6.2 限制与风险
- 自身不做计算:Kyuubi 是网关而非引擎,查询性能完全取决于所接引擎,需分别调优。
- JVM 生态约束:服务与引擎均为 JVM 应用,需正确设置 JAVA_HOME;Spark 引擎与 Scala 版本强绑定(官方提示使用 Spark 2 或不支持的 Scala 版本会遇到运行时异常)。
- HA 依赖 ZooKeeper:高可用需额外维护 ZooKeeper 集群(>=3.4.x)。
- 社区规模中等:2,370 stars,小于 Hive/Trino,遇到边缘问题排查资源相对有限。
七、同类选型对比
对比维度:开源许可、社区活跃度(GitHub stars + 最近发版)、版本节奏、兼容矩阵。stars 为 GitHub 仓库页面 stargazerCount 字段实查,发版信息为 GitHub releases/latest 重定向、Atom feed 与 ASF 分发服务器实查,查询日期 2026-10-18。
| 项目 | 定位 | 许可 | GitHub stars | 最近发版(实查) | 版本节奏 | 兼容矩阵 |
|---|---|---|---|---|---|---|
| Apache Kyuubi 1.12.0 | 多租户 Thrift JDBC/ODBC 网关 | Apache-2.0 | 2,370(apache/kyuubi) | 1.12.0(2026-07-28) | 年均 3~4 版 | Java 8/11/17;Spark 3.3 |
| Apache Hive 4.2.1 | 数据仓库软件(HiveServer2 JDBC 服务) | Apache-2.0 | 6,029(apache/hive) | 4.2.1(downloads.apache.org/hive/ 实查) | 大版本间隔年级 | HiveQL;MapReduce/Tez/Spark 执行器;与 Hadoop 生态深度绑定 |
| Trino 484 | 分布式联邦 SQL 查询引擎 | Apache-2.0 | 13,344(trinodb/trino) | 484(2026-10-16) | 周度发版 | 数百 Connector;自有联邦调度,无多租户引擎托管语义 |
| Spark Thrift Server(随 Apache Spark 发行) | Spark 内置的 JDBC/ODBC 服务组件 | Apache-2.0 | 44,236(apache/spark) | 随 Spark 发行,当前 spark-4.1.2(downloads.apache.org/spark/ 实查) | 随 Spark 年级大版本 | 仅 Spark 单引擎;单实例共享,无按用户引擎隔离 |
选型建议:要把 Spark/Flink 等 SQL 能力以多租户、可治理的 JDBC 服务形态对外提供,Kyuubi 是该形态下最完善的 Apache 项目;仅做单引擎(Spark)且租户隔离要求低的简单入口可用 Spark Thrift Server;传统 Hadoop 数仓且重度依赖 HiveQL 生态的存量场景继续用 Hive HiveServer2;面向多数据源联邦即席查询则应选 Trino。
八、参考链接
- 项目主页:https://kyuubi.apache.org/
- 官方文档 v1.12.0:https://kyuubi.readthedocs.io/en/v1.12.0/
- Getting Started(快速上手出处):https://kyuubi.readthedocs.io/en/v1.12.0/quick_start/quick_start.html
- GitHub 官方仓库:https://github.com/apache/kyuubi
- Releases(版本依据):https://github.com/apache/kyuubi/releases
- 官方下载页:https://kyuubi.apache.org/download.html
- Apache Hive 下载(ASF 分发服务器):https://downloads.apache.org/hive/
- Trino 官网:https://trino.io/
- Apache Spark(ASF 分发服务器):https://downloads.apache.org/spark/