Apache Kyuubi是一个分布式和多租户网关,为数据湖查询引擎(例如Spark、Flink或Trino等)提供SQL等查询服务。

功能特性

  • 多租户:Kyuubi通过统一的身份验证授权层为资源获取,数据和元数据访问提供端到端的多租户支持。
  • 高可用:Kyuubi基于ZooKeeper提供了负载均衡,提供了企业级的高可用性,以及无限的客户端高并发。
  • 多工作负载:Kyuubi可以通过一个平台、一个数据副本和一个SQL接口轻松支持多个不同的工作负载。

使用场景

  • 交互式分析:利用Kyuubi可以构建企业级分析平台,用于对大数据进行交互式可视化分析,支持常见的计算框架。Kyuubi支持JDBC和ODBC接口,您可以直接通过SQL或通过BI工具来访问Kyuubi并高效地运行查询。Kyuubi可以在用户级别缓存后台引擎实例,以更好的实现计算资源共享和快速响应,并行处理大量数据的查询并快速返回结果。
  • 批数据处理:Kyuubi提供了SQL接口用于常见的批处理,通常是大型提取、转换、加载(ETL)过程。Kyuubi及其引擎都是存储独立的,支持众多的数据源,并且Kyuubi支持在连接级别隔离后台引擎实例,以便实现更好的计算资源隔离并提升稳定性。

Kyuubi和Livy以及Spark ThriftServer对比

对比项KyuubiLivySpark ThriftServer
支持接口SQL、ScalaSQL、Scala、Python and RSQL
支持引擎Spark、Flink、TrinoSparkSpark
Spark版本Spark 3.xSpark 2.x & Spark 3.xSpark组件自带
协议支持Thrift + JDBCHTTP,Thrift + JDBCThrift + JDBC
客户端Kyuubi BeelineHTTP ClientSpark Beeline
高可用支持支持不支持
资源隔离支持支持不支持
LDAP认证支持支持支持
阿里云EMR版本
  • EMR-3.42.0及后续版本
  • EMR-5.8.0后续版本
  • EMR-3.40.0及之前版本
  • EMR-5.6.0及之前版本
所有版本

参考文档