Apache Kyuubi 1.5.0 特性解读
架构设计
- 计算引擎服务化演进:从胖客户端(如 Hive、Spark SQL)向瘦客户端(如 HiveServer2、Spark Thrift Server)转变,提升隔离性和资源利用率。
- 计算引擎进程分离:将 API Server 和 Compute Engine 进程分离,由 API Server 管理生命周期,优势包括多版本引擎支持、Classpath 隔离、提升 API Server 稳定性、弹性资源分配。
- Kyuubi 高可用弹性架构:兼容 HiveServer2 的 HA 协议,使用 Zookeeper 作为服务发现组件;引入引擎共享级别概念(USER、CONNECTION、GROUP);支持多种 API Server(Hive Thrift、MySQL、REST)和 Compute Engine(Spark、Flink、Trino、Hive)。
引擎扩展
- Kyuubi Spark Engine:支持 Spark 3.0-3.3,提供小文件合并、限制扫描分区数等优化;即将支持 Spark Ranger Plugin。
- Kyuubi Flink Engine:支持 Flink 1.14-1.15,提供多种部署模式(Local、Yarn PerJob/Session/Application、K8s);Application mode 最契合 Kyuubi 架构理念。
- Kyuubi Trino Engine:已进入生产可用阶段,有一定规模的社区用户验证。
- Kyuubi Hive Engine:正在开发中。
功能增强
- 更丰富的引擎共享策略:在隔离性和资源利用率上取得平衡。
- 基于 Zookeeper 路径的计算引擎路由规则:路径格式为
/namespace__share_level_engine_type/{user_name|group_name}/{subdomain|pool}/{engine_information}。
- Engine Pool 使用案例:通过配置共享级别和池大小,实现资源分配和隔离。
- Spark SQL & Scala 混编:支持 Beeline、JDBC、PyHive 等模式自由切换,解决 80% 问题;SQL + Scala 解决 95% 问题。
未来可期
- Kyuubi 版本重大特性:1.3.0 进入孵化器,1.4.0 增强安全特性,1.5.0 新增 REST API、Spark Scala 支持、Flink/Trino 引擎支持等;未来将推出 Spark Ranger Plugin、Spark Jar 任务提交、Kyuubi Playground 等。
- Kyuubi 社区成长迅速:开发者社区活跃,累计 71 位开发者 1800+ 次提交,9 位 PPMC 成员,4 位 Committer;进入孵化器以来 6 次版本发布。
- 用户案例:欢迎分享使用 Kyuubi 的企业案例。