近日,Apache Spark 4.0.0-preview1 发布,意味着 Spark 正式进入 4.0 时代;Apache Kyuubi 同步发布了 1.9.1,此版本支持 Spark 3.1~3.5 以及 4.0。
01 发布记录
Apache Kyuubi 于 2024 年 6 月 3 日正式发布 1.9.1 版本。该版本是 1.9 分支第一个维护版本,此版本中引入了两项新特性:
新特性
实验性支持 Spark 4.0
Web UI 支持 Basic 认证
Bug 修复和其他变化请参阅完整发布记录:
https://kyuubi.apache.org/release/1.9.1.html
02 版本兼容
Apache Kyuubi 社区始终致力于为用户提供可靠、易用的组件,以 Kyuubi 1.9.1 为例,官方仅提供单一的 apache-kyuubi-1.9.1-bin.tgz 二进制包,其基于 Java 8、Spark 3.5 编译,在无需任何调整的情况下,支持 Java 8~17,可以搭配 Spark 3.1~4.0 任意版本的 Spark 客户端使用。
对于 Engine 模块,Kyuubi 不仅保证跨版本的源码兼容性,同时也会保证二进制兼容性;以 Spark 为例,Kyuubi 1.9 默认使用 Spark 3.5 构建,我们会构建集成测试,把基于 Spark 3.5 编译的 kyuubi-spark-sql-engine_2.12-1.9.1.jar 提交到 Spark 3.1~3.4 版本的客户端上运行测试用例,以确保所有功能正常,不会出现运行时链接错误。
解压 apache-kyuubi-1.9.1-bin.tgz,可以看到,Kyuubi Server 组件极其依赖的 Jar 还是使用 Scala 2.12 编译,而 Spark 引擎同时提供了 Scala 2.12、2.13 的版本,这样的设计通过最小的改动完成了对 Scala 2.13 的支持。
$apache-kyuubi-1.9.1-bin tree.├── bin├── conf├── ...├── externals│ └── engines│ ├── ...│ ├── spark│ │ ├── kyuubi-spark-sql-engine_2.12-1.9.1.jar│ │ └── kyuubi-spark-sql-engine_2.13-1.9.1.jar│ └── ...├── jars│ ├── ...│ ├── kyuubi-common_2.12-1.9.1.jar│ ├── kyuubi-server_2.12-1.9.1.jar│ ├── kyuubi-relocated-thrift-0.4.0.jar│ ├── kyuubi-relocated-zookeeper-34-0.4.0.jar│ ├── kyuubi-util-scala_2.12-1.9.1.jar│ └── ...└── ...
当用户配置SPARK_HOME 后,Kyuubi 会自动根据 $SPARK_HOME/jars/spark-core_*.jar 推断 Scala 版本,选择合适的 kyuubi-spark-sql-engine_*.jar 启动 Spark 引擎。
Kyuubi 允许在 JDBC URL 中指定 engine 的环境变量,比如,Kyuubi 服务端的 SPARK_HOME 默认指向 /opt/spark-3.5,可以通过配置覆盖使得本次会话使用 Spark 4.0。
jdbc:kyuubi://kyuubi:10009/default;#kyuubi.engineEnv.SPARK_HOME=/opt/spark-4.0
注意:SPARK_HOME 环境变量覆盖在 Spark 引擎复用场景会被忽略,仅在启动 Spark 引擎时才会生效。
03 JDK 切换
Spark 4.0 要求 Java 17 或 21,相信大部分用户的 Hadoop 环境还在使用 Java 8。但幸运的是,Spark on YARN 可以指定单独的 JAVA_HOME。
首先在集群所有节点安装 JDK 17 到 /opt/openjdk-17,并配置 Spark 使用 JDK 17:
修改 spark-env.sh 为 spark-submit 配置 JAVA_HOME
export JAVA_HOME=/opt/openjdk-17
修改 spark-defaults.conf 为 Spark YARN Container 配置 JAVA_HOME
spark.yarn.appMasterEnv.JAVA_HOME=/opt/openjdk-17spark.executorEnv.JAVA_HOME=/opt/openjdk-17
04 社区参与
Apache Kyuubi 项目依靠社区发展,我们致力于在 Apache Way 的指导下,为用户提供简单易用的大数据产品,我们强调社区协作,互相帮助,共同成长。
首先,如果您在下载和使用 Apache Kyuubi 1.9.1 中发现任何问题,欢迎使用 Github Issues 功能,将您遇到的问题和社区分享。
https://github.com/apache/kyuubi/issues
如果您或者您的公司正在使用 Apache Kyuubi,并乐意与社区和分享,可以在 Who is using Apache Kyuubi? 中进行留言。
https://github.com/apache/kyuubi/discussions/925
我们也接受其他任何形式的帮助,详见
https://github.com/apache/kyuubi#contributing,
欢迎通过 dev-subscribe@kyuubi.apache.org 订阅我们的邮件列表,获取社区最新动向。
05 致谢
在社区驱动的模式下,Apache Kyuubi 得以有今天的发展态势,真诚地感谢每一位社区贡献者及用户的信任、支持和帮助。
此版本中包含广大开发者在 2024H1 Kyuubi Code Contribution 活动中的贡献,贡献详情请查阅:
https://github.com/apache/kyuubi/issues/6232
特别感谢对 1.9.1 版本直接贡献的社区开发者:
Lennon Chin
JiaLiangC
Senmiao Liu
Xiao Liu
Cheng Pan
PorterZhang2021
TakawaAkirayo
Zhen Wang
Fei Wang
Binjie Yang
He Zhao
Mingliang Zhu
amanraj2520
beryllw
camper42
dupen01
lllong33
mrpengbei
sudohainguyen
zRains
06 项目简介
Apache Kyuubi 是一个 Thrift JDBC/ODBC 服务,目前对接了 Apache Spark/Flink/Hive 计算框架以及 Trino 查询引擎,支持多租户和分布式等特性,可以满足企业内诸如 ETL、BI 报表等多种大数据场景的应用。Kyuubi 可以为企业级数据湖探索提供标准化的接口,赋予用户调动整个数据湖生态的数据的能力,使得用户能够像处理普通数据一样处理大数据。它的主要方向是依托本身的架构设计,围绕各类主流计算框架,打造一个面向 Serverless SQL on Lakehouse 的服务。Kyuubi 已在国内外数十家企业落地应用,2021年度入选中国科协“科创中国”开源创新榜单。
社区资源
官方网站:https://kyuubi.apache.org/
代码仓库:https://github.com/apache/kyuubi
邮件列表:https://kyuubi.apache.org/mailing_lists.html
问题记录:https://kyuubi.apache.org/issue_tracking.html
成为提交者:Become A Committer of Apache Kyuubi
Who is using Apache Kyuubi:
https://github.com/apache/kyuubi/discussions/925