Apache Kyuubi 按照和使用文档
1. 项目介绍
Apache Kyuubi 是一个分布式且多租户的网关,它提供了在数据仓库和湖仓上进行无服务器 SQL 的能力。Kyuubi 通过 Thrift JDBC/ODBC 接口为终端用户提供了操作大规模数据的纯 SQL 网关,与预编程和可扩展的 Spark SQL 引擎配合使用。这种“开箱即用”的模型极大地降低了终端用户在客户端使用 Spark 的门槛和成本。在服务器端,Kyuubi 服务器和引擎的多租户架构为管理员提供了计算资源隔离、数据安全、高可用性和高客户端并发等管理方式。
2. 项目快速启动
环境准备
- JDK 1.8 或更高版本
- Scala 2.13.x
- Apache Spark 3.x
部署步骤
-
克隆项目
git clone https://github.com/apache/kyuubi.git
-
构建项目
cd kyuubi sbt clean assembly
-
启动 Kyuubi 服务器
bin/kyuubi-start.sh
-
连接 Kyuubi 服务器
使用 JDBC 连接字符串连接到 Kyuubi 服务器:
jdbc:hive2://<kyuubi-server-host>:<kyuubi-server-port>/default;user=<username>;password=<password>
其中
<kyuubi-server-host>
和<kyuubi-server-port>
分别是 Kyuubi 服务器的地址和端口,<username>
和<password>
是连接时使用的用户名和密码。
3. 应用案例和最佳实践
案例一:从 HiveServer2 迁移工作负载到 Spark SQL
在典型的大数据生产环境中,尤其是安全性较高的环境,所有的捆绑服务都会管理访问控制列表,以限制对授权用户的访问。例如,Hadoop YARN 将计算资源划分为队列,通过队列访问控制列表(Queue ACLs)来识别和控制哪些用户/组可以在特定队列上执行操作。类似地,HDFS 访问控制列表(ACLs)通过为特定用户/组设置不同的权限来控制对 HDFS 文件的访问。
Apache Spark 是一个用于大规模数据处理的全分析引擎,它提供了一个分布式 SQL 引擎,即 Spark Thrift Server(STS),旨在与 HiveServer2 无缝兼容,并提供更好的性能。
HiveServer2 能够识别并验证调用者,如果调用者还拥有 YARN 队列和 HDFS 文件的权限,那么操作将成功,否则失败。然而,STS 是一个单一的 Spark 应用程序,它在启动时确定了所属的用户和队列。因此,STS 无法利用集群管理器如 YARN 和 Kubernetes 进行资源管理。
最佳实践
- 使用 Kyuubi 作为统一的 SQL 网关,以支持多种计算引擎。
- 利用 Kyuubi 的多租户特性来实现资源隔离和优化资源利用率。
- 配合 Apache Superset 等工具实现数据的可视化分析。
4. 典型生态项目
- Apache Spark:Kyuubi 主要与 Spark SQL 引擎配合使用,提供无服务器 SQL 服务。
- Apache Superset:一个数据可视化和业务智能平台,可以与 Kyuubi 集成,提供丰富的可视化功能。
- Hadoop YARN:集群资源管理器,可以与 Kyuubi 配合使用,进行资源分配和管理。
- HDFS:分布式文件系统,为 Kyuubi 提供数据存储支持。
通过以上介绍,您可以开始使用 Apache Kyuubi 来简化大数据处理工作,并探索其在不同应用场景中的优势。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考