kyuubi:分布式多租户SQL网关
项目介绍
Apache Kyuubi是一个分布式且多租户的网关,旨在提供无服务器的SQL服务,用于数据仓库和湖仓。它通过Thrift JDBC/ODBC接口,允许终端用户以预编程和可扩展的Spark SQL引擎操纵大规模数据。这种“开箱即用”的模型极大地降低了终端用户在客户端使用Spark的门槛和成本。在服务器端,Kyuubi服务器和引擎的多租户架构为管理员提供了一种实现计算资源隔离、数据安全、高可用性和高客户端并发的方式。
项目技术分析
Kyuubi提供了一种类似于HiveServer2的API,支持多租户Spark,并且可以以无服务器的方式运行Spark。其核心是一个轻量级的服务器,负责接收客户端请求,并根据配置将请求分配到不同的Spark引擎中。这种架构使得Kyuubi可以在不同的集群管理器上运行,如Hadoop YARN和Kubernetes,从而实现资源的共享和隔离。
技术特点
- HiveServer2-like API:支持与HiveServer2相似的API,确保用户可以无缝迁移现有的Hive应用。
- 多租户Spark支持:允许不同的用户或组在同一个Spark集群上隔离运行,提高资源利用率和数据安全性。
- 无服务器架构:用户无需关心Spark集群的部署和管理,Kyuubi会根据请求自动分配和回收资源。
项目技术应用场景
Kyuubi适用于多种大数据处理场景,以下是几个典型的应用场景:
1. 从HiveServer2迁移到Spark SQL
在许多大数据生产环境中,尤其是安全性较高的环境,访问控制列表(ACL)被用来限制对授权用户的访问。Kyuubi能够扩展Spark Thrift Server(STS)的使用,基于多租户模型与集群管理器交互,从而获得资源共享/隔离和数据安全的能力。与传统的STS相比,Kyuubi的松耦合架构大大提高了客户端并发性和服务稳定性。
2. 数据湖/湖仓支持
Kyuubi的愿景是统一入口,成为一个易于使用的数据湖管理平台。它支持不同的工作负载,如ETL处理和BI分析,使用单一的数据副本,通过单一的SQL接口进行操作。
3. 云原生支持
Kyuubi可以在各种集群管理器上部署其引擎,如Hadoop YARN、Kubernetes等,从而支持现代云原生架构。
项目特点
Kyuubi具有以下显著特点:
- 高可用性:多租户架构和松耦合的设计保证了服务的高可用性。
- 资源隔离:基于用户和队列的资源隔离,确保不同用户之间的资源不会相互影响。
- 数据安全:支持SQL标准授权,保证数据访问的安全性。
- 易于扩展:支持多种数据源和SQL方言,易于与其他工具和平台集成。
Kyuubi作为一个开源项目,正在不断发展和完善。其社区致力于通过各种新特性,如基于历史的优化器、自动调整、物化视图、SQL方言和函数等,来持续优化整个系统。
通过Apache Kyuubi,用户可以更简单、高效地使用Spark,处理大数据,降低技术门槛,使得大数据处理变得像普通数据处理一样便捷。无论是在数据仓库还是数据湖环境中,Kyuubi都是一个值得信赖的解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考