使用minio 做为lakefs 的数据存储

lakefs 提供了专门的存储adapter,所以支持各类还是比较方便的,官方已经内置了不少存储适配
以下是简单的集成minio

环境准备

  • docker-compose文件
    注意集成了dremio,dremio 添加了jprofiler扩展
 
version: '3'
services:
  lakefs:
    image: dalongrong/lakefs:dev-2022-02-09
    ports:
      - "8000:8000"
    depends_on:
      - "postgres"
    environment:
      - LAKEFS_AUTH_ENCRYPT_SECRET_KEY=${LAKEFS_AUTH_ENCRYPT_SECRET_KEY:-some random secret string}
      - LAKEFS_DATABASE_CONNECTION_STRING=${LAKEFS_DATABASE_CONNECTION_STRING:-postgres://lakefs:lakefs@postgres/postgres?sslmode=disable}
      - LAKEFS_BLOCKSTORE_TYPE=${LAKEFS_BLOCKSTORE_TYPE:-s3}
      - LAKEFS_BLOCKSTORE_LOCAL_PATH=${LAKEFS_BLOCKSTORE_LOCAL_PATH:-/home/lakefs}
      - LAKEFS_GATEWAYS_S3_DOMAIN_NAME=${LAKEFS_GATEWAYS_S3_DOMAIN_NAME:-s3.local.lakefs.io:8000}
      - LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-minio}
      - LAKEFS_BLOCKSTORE_S3_CREDENTIALS_ACCESS_SECRET_KEY=${AWS_SECRET_ACCESS_KEY:-minio123}
      - LAKEFS_LOGGING_LEVEL=${LAKEFS_LOGGING_LEVEL:-INFO}
      - LAKEFS_STATS_ENABLED
      - LAKEFS_BLOCKSTORE_S3_ENDPOINT=http://s3:9000
      - LAKEFS_BLOCKSTORE_S3_FORCE_PATH_STYLE=true
      - LAKEFS_COMMITTED_LOCAL_CACHE_DIR=${LAKEFS_COMMITTED_LOCAL_CACHE_DIR:-/home/lakefs/.local_tier}
    entrypoint:
      [
        "/app/wait-for",
        "postgres:5432",
        "--",
        "/app/lakefs",
        "run"
      ]
  postgres:
    image: "postgres:${PG_VERSION:-11}"
    command: "-c log_min_messages=FATAL"
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: lakefs
      POSTGRES_PASSWORD: lakefs
    logging:
      driver: none
  dremio:
    build: ./
    ports:
      - "9047:9047"
      - "31010:31010"
  s3:
    image: minio/minio
    environment:
      - "MINIO_ACCESS_KEY=minio"
      - "MINIO_SECRET_KEY=minio123"
    command: server /data --console-address ":9001"
    ports:
      - "9000:9000"
      - "9001:9001"

dremio dockerfile

FROM dremio/dremio-oss:20.1.0
USER root
COPY dremio-env /opt/dremio/conf/dremio-env
COPY jprofiler_linux_12_0_4.deb /opt/jprofiler_linux_12_0_4.deb
RUN dpkg -i /opt/jprofiler_linux_12_0_4.deb
USER dremio

启动

启动比较简单docker-compose 就行了,但是需要配置lakefs 以及dremio(比较简单)
lakefs http://localhost:8000/setup
dremio http://localhost:9047

使用

目前lakefs 对于s3 的处理是需要先创建好bucket的,然后才能创建repo

  • s3 bucket

 

 

  • lakefs repo

 

 

  • dremio 查询

 

 

说明

lakefs 设计上的问题,对于分支未提交的文件在s3中是可以看到的,这样对于基于流程管理的比较方便,我们会基于特定分支创建新的分支,然后进行管理
但是有时未提交文件直接可见可能不会很好(容易造成数据的不一致,已经赃数据),lakefs 的数据存储是比较有意思的,使用了sstable,比较高效,目
前一个问题是官方的部署需要依赖一个pg,官方也在逐步去除pg
一个s3数据存储的效果

 

 


以上使用了自己构建的一个版本的lakefs,当时主要是为了支持http (minio) 同时还添加了一个配置,但是后边发现官方是直接支持的,所以使用的时候可以直接走官方镜像

参考资料

https://docs.lakefs.io/understand/architecture.html
https://docs.lakefs.io/understand/data-model.html

posted on   荣锋亮  阅读(369)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-02-10 dremio 与apache drill 的一些区别
2021-02-10 基于json lines 进行数据交换
2021-02-10 使用idea 自带的工具反编译jar包
2020-02-10 pgspider oracle fdw docker 镜像简单使用说明
2020-02-10 pgspider tds fdw sql server docker 镜像中文乱码问题解决
2019-02-10 awesome-workflow-engines
2019-02-10 Next generation configuration mgmt

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示