dremio 21.1 分布式存储单机测试的一种方法
dremio 21.1 对于分布式存储的变动对于希望体验本地反射是一个比较费事的,我们需要自己配置下,当前支持
的分布式存储实际上是不少的,包含了传统的hdfs,nas,s3 ,mapr,adls, 但是很多是时候大家肯定没有实际条件
实际上有一种最简单方法就是直接使用本地存储,只是使用了类似nas 的文件系统访问格式
参考配置
paths: {
# the local path for dremio to store data.
local: ${DREMIO_HOME}"/data"
# the distributed path Dremio data including job results, downloads, uploads, etc
dist: "file:///myappdemo" // 注意格式是file:/// file:// 应该是有问题的,同时我测试也是有问题的
accelerator: ${paths.dist}/accelerator,
downloads: ${paths.dist}/downloads,
uploads: ${paths.dist}/uploads,
results: ${paths.dist}/results
scratch: ${paths.dist}/scratch
}
services: {
coordinator.enabled: true,
coordinator.master.enabled: true,
executor.enabled: true,
flight.use_session_service: true
}
docker-compose 启动
version: '3'
services:
pg:
image: postgres:14.3-alpine3.15
environment:
- POSTGRES_PASSWORD=dalongdemo
ports:
- 5432:5432
minio:
image: minio/minio
ports:
- "9002:9000"
- "19001:19001"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
command: server --console-address :19001 --quiet /data
dremio:
build: ./
image: dalongrong/dremio:21.1-jprofiler
volumes:
- "./dist:/myappdemo"
ports:
- "9047:9047"
- "8849:8849"
- "31010:31010"
反射数据参考格式
- 参考截图
从上图可以看出包含的基于反射id 的数据文件(使用了parquet文件以及一个crc 校验文件),metadata 是关于反射的元数据信息,包含了基于avro 的定义,以及数据的字段信息(实际上这部分官方是要使用apache iceberg 格式的),后边预计dremio 会基于iceberg 的存储格式搞一些事情的,实际上从官方博客相关介绍也能看到一些信息
处理逻辑
metadata 的,从调用链也可以看出是直接使用了apache iceberg 处理的
参考资料
https://docs.dremio.com/software/deployment/dist-store-config/
https://docs.dremio.com/software/data-formats/apache-iceberg/