Apache Kyuubi Docker 镜像使用教程
项目介绍
Apache Kyuubi 是一个分布式和多租户网关,旨在为数据仓库和湖仓提供无服务器 SQL 服务。Kyuubi 通过 Thrift JDBC/ODBC 接口为终端用户提供大规模数据操作的能力,使用预编程和可扩展的 Spark SQL 引擎。Kyuubi 的“开箱即用”模型降低了终端用户使用 Spark 的门槛和成本。在服务器端,Kyuubi 服务器和引擎的多租户架构为管理员提供了计算资源隔离、数据安全、高可用性和高并发性等功能。
项目快速启动
环境准备
确保你已经安装了 Docker 和 Kubernetes,并且 Kubernetes 集群正常运行。
构建 Kyuubi Docker 镜像
-
克隆项目仓库:
git clone https://github.com/apache/kyuubi-docker.git cd kyuubi-docker
-
构建 Docker 镜像:
sudo docker build -t kyuubi:latest .
-
将镜像推送到 Docker 仓库:
sudo docker tag kyuubi:latest your_docker_registry/kyuubi:latest sudo docker push your_docker_registry/kyuubi:latest
部署 Kyuubi 到 Kubernetes
-
创建 Kyuubi Server 的 Kubernetes Deployment 和 Service:
apiVersion: apps/v1 kind: Deployment metadata: name: kyuubi-server spec: replicas: 1 selector: matchLabels: app: kyuubi-server template: metadata: labels: app: kyuubi-server spec: containers: - name: kyuubi-server image: your_docker_registry/kyuubi:latest ports: - containerPort: 10009 --- apiVersion: v1 kind: Service metadata: name: kyuubi-server spec: ports: - port: 10009 targetPort: 10009 selector: app: kyuubi-server
-
创建 Kyuubi Engine 的 Kubernetes Deployment 和 Service:
apiVersion: apps/v1 kind: Deployment metadata: name: kyuubi-engine spec: replicas: 1 selector: matchLabels: app: kyuubi-engine template: metadata: labels: app: kyuubi-engine spec: containers: - name: kyuubi-engine image: your_docker_registry/kyuubi:latest ports: - containerPort: 10009 --- apiVersion: v1 kind: Service metadata: name: kyuubi-engine spec: ports: - port: 10009 targetPort: 10009 selector: app: kyuubi-engine
-
应用配置:
kubectl apply -f kyuubi-server-deployment.yaml kubectl apply -f kyuubi-engine-deployment.yaml
应用案例和最佳实践
案例一:数据仓库查询
Kyuubi 可以作为数据仓库的 SQL 网关,提供高性能的 SQL 查询服务。通过 Kyuubi,用户可以轻松地连接到数据仓库,执行复杂的 SQL 查询,而无需关心底层的 Spark 配置和资源管理。
案例二:湖仓集成
Kyuubi 支持与各种湖仓解决方案(如 Apache Hive、Delta Lake 等)集成,提供统一的 SQL 接口。这使得用户可以在不同的数据存储之间无缝切换,同时保持一致的 SQL 查询体验。
最佳实践
- 资源隔离:利用 Kyuubi 的多租户架构,为不同的用户和团队分配独立的计算资源,确保数据安全和性能隔离。
- 高可用配置:通过配置多个 Kyuubi 服务器和引擎实例,实现高可用性和负载均衡