主要是一个玩法的集成,使用apache kyuubi 简化spark 的使用,而且如果我们集成数据库存储格式也是很方便的
参考图
简单说明:
我们直接基于apache kyuubi 进行delta lake 的操作,数据存储到minio s3 中,然后使用dremio 强大的能力(数据加速,数据集成能力)方便的进行数据查询分析
环境准备
- 下载安装apache kyuubi (使用了最近的版本)
参考连接,注意新版本是没有直接集成spark的需要自己下载,同时delta lake 的包也是需要自己配置的 - 下载spark
可以使用apache kyuubi 1.2 github 上提供的直接解压就放到externals 目录下 - delta lake 以及s3 集成
需要自己下载软件包,我已经提供好了一个,可以直接使用,参考github ,这些软件包可以直接放到spark 的jars 目录
- delta lake 配置
conf/kyuubi-defaults.conf 文件
kyuubi.frontend.bind.host 0.0.0.0
kyuubi.frontend.bind.port 10019
# minio s3 集成,
spark.hadoop.fs.s3a.access.key=minio
spark.hadoop.fs.s3a.secret.key=minio123
spark.hadop.fs.s3a.endpoint=localhost:9000
spark.hadoop.fs.s3a.path.style.access=true
spark.hadoop.fs.s3a.connection.ssl.enabled=false
spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension
spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.databricks.delta.retentionDurationCheck.enabled=false
- dremio s3 部署
version: "3"
services:
s3:
image: minio/minio
environment:
- "MINIO_ACCESS_KEY=minio"
- "MINIO_SECRET_KEY=minio123"
command: server /data --console-address ":9001"
ports:
- "9000:9000"
- "9001:9001"
app:
image: dremio/dremio-oss:19.0
ports:
- "9047:9047"
- "31010:31010"
启动&集成试用
- 启动
启动之后还需要创建s3 bucket (delta-lake),不然基于apache kyuubi 创建表会提示bucket 不存在的
./bin/kyuubi run
docker-compose up -d
- 创建table
CREATE TABLE events9 (
eventId STRING,
eventType STRING,
data STRING)
USING DELTA
LOCATION 's3a://delta-lake/firstdemo' // 指定s3 路径
insert into events9 values('1111','11111','11111') // 写入数
- dremio 集成
配置数据源
数据查询
说明
以上是基于apache kyuubi 集成dremio 的一个玩法,我们基于spark 的能力加上dremio 强大的查询能力,进行数据分析是很灵活的,apache kyuubi 是一个好东西