Kyuubi 简介
Apache Kyuubi (Incubating)是一个 Thrift JDBC/ODBC 服务,目前对接了 Apache Spark 计算框架,支持多租户和分布式等特性,可以满足企业内诸如 ETL、BI 报表等多种大数据场景的应用。Kyuubi 可以为企业级数据湖探索提供标准化的接口,赋予用户调动整个数据湖生态的数据的能力,使得用户能够像处理普通数据一样处理大数据。项目已于2021年 6 月 21 号正式进入 Apache 孵化器。从社区当前阶段的发展目标来看,它的主要方向是依托本身的架构设计,围绕各类主流计算框架,打造一个面向 Serverless SQL on Lakehouse 的服务。
项目地址:https://github.com/apache/incubator-kyuubi
前言
为了能让 Kyuubi 可以更好的满足诸如 ETL、BI 报表等多种大数据场景的应用,从 Kyuubi v1.0.0 版本开始,我们引入了 Kyuubi 引擎共享级别这个概念,来对执行侧进行不同粒度的隔离和共享,这个功能在多次版本的迭代过程中不断被优化和完善。
Kyuubi 引擎的共享级别描述了会话(session)和引擎(engine)之间的对应关系。它决定了一个新的会话是否可以以及如何与其他会话共享一个现有的后台引擎。会话也被视为来自终端用户创建的客户端发起的Thrift JDBC/ODBC连接,而引擎是独立的分布式应用程序,他它在 Spark SQL、 Flink SQL(开发中,见 https://github.com/apache/incubator-kyuubi/issues/1322)等计算框架之上实现了所有功能,支持在单节点机器或集群上运行。
Kyuubi 的服务端是这个对应关系的描述者。而它本身是一个是水平可扩展的服务发现层,支持多个 Kyuubi Server 进行负载均衡(LoadBalance)来提供高可用(HA)、平滑下线等能力。值得注意的是,无论是在HA还是单节点模式下,Kyuubi引擎共享级别的功能都是不受影响的。换句话说,客户端无论连接到哪个 Kyuubi Server 节点,在共享级别