Apache Kyuubi 教程
1. 项目介绍
Apache Kyuubi 是一个分布式且多租户的SQL网关,提供对数据仓库和湖仓的数据服务,支持serverless SQL操作。它通过Thrift JDBC/ODBC接口为终端用户提供纯SQL访问,让用户无需在客户端安装Spark,从而降低了大规模数据处理的门槛。服务器端采用多租户架构,允许管理员实现计算资源隔离、数据安全和高可用性等特性。
2. 项目快速启动
环境准备
确保已安装Java(JDK 8 或更高版本)和Scala环境。
获取源码
克隆项目到本地:
git clone https://github.com/apache/kyuubi.git
cd kyuubi
构建并运行
使用sbt构建项目并启动样例服务器:
./build/sbt assembly
bin/kyuubi.sh start
测试连接
在另一个终端窗口中,测试Hive JDBC连接:
beeline -u 'jdbc:hive2://localhost:10009/default;principal=hive/_HOST@LOCALHOST' --conf hive.server2.authentication=NONE
创建表并插入数据以验证功能:
CREATE TABLE test_table (id INT);
INSERT INTO test_table VALUES (1), (2), (3);
SELECT * FROM test_table;
完成后,停止Kyuubi服务:
bin/kyuubi.sh stop
3. 应用案例与最佳实践
交互式分析 Kyuubi 是企业级的高级实时分析平台,用于大数据上的交互式视觉分析。支持现代计算框架如Spark,可以通过JDBC/ODBC接口直接或通过BI工具生成SQL查询。用户级别的引擎实例缓存提高了计算效率。
MySQL 协议 Kyuubi 提供了兼容MySQL的接口,使得用户可以使用如Connector/J这样的MySQL连接器与Kyuubi通信。
多租户支持 Kyuubi 支持全栈多租户,服务器提供集中式的认证层来降低数据和资源泄露的风险。数据平面中,Kyuubi引擎使用相同可信的客户端身份进行实例化。
4. 典型生态项目
Kyuubi 可与多种生态系统项目集成,包括但不限于:
- Apache Spark: 作为底层计算引擎,负责执行SQL查询。
- Apache Flink: 集成Flink SQL支持实时流处理。
- Trino: 可以与Trino结合提供更广泛的SQL查询能力。
- LDAP, Kerberos: 支持这些安全协议进行网络通信和认证。
欲了解更多详情和深入探讨,建议加入Kyuubi的邮件列表和社区论坛。