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 Kyuubi2026/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.33.5 与 4.04.2;Flink 1.17~1.20;Trino(trino-client v411 接入);Doris 集群;Hive Metastore 2.1-cdh6/2.3/3.1
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):

  1. 解压发行包(官方原文命令与目录说明节选):
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 等目录。

  1. 配置环境(官方原文示例):向 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
  1. 启动 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/。

  1. 客户端连接并执行查询(官方原文命令与回显节选):
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.33.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.02,370(apache/kyuubi)1.12.0(2026-07-28)年均 3~4 版Java 8/11/17;Spark 3.33.5/4.04.2;Flink 1.17~1.20;Trino/Doris/Hive Metastore;ZooKeeper HA
Apache Hive 4.2.1数据仓库软件(HiveServer2 JDBC 服务)Apache-2.06,029(apache/hive)4.2.1(downloads.apache.org/hive/ 实查)大版本间隔年级HiveQL;MapReduce/Tez/Spark 执行器;与 Hadoop 生态深度绑定
Trino 484分布式联邦 SQL 查询引擎Apache-2.013,344(trinodb/trino)484(2026-10-16)周度发版数百 Connector;自有联邦调度,无多租户引擎托管语义
Spark Thrift Server(随 Apache Spark 发行)Spark 内置的 JDBC/ODBC 服务组件Apache-2.044,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。

八、参考链接