ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DataHub Docker Compose 部署指南:从环境确认到日常运维

DataHub Docker Compose 部署指南:从环境确认到日常运维 DataHub Docker Compose 部署指南从环境确认到日常运维【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub内网拉起一个 DataHub 实例新接手数据平台团队还没有统一的元数据入口明天要给同事演示搜索和血缘页面。机器是内网 LinuxDocker 已就绪最稳的选择是 DataHub Docker Compose 部署一条命令拉起 MySQL、Kafka、OpenSearch、GMS 和前端。这篇文章按这个流程走确认环境、选路、改最常用的配置最后给日常运维速查。确认环境就绪先核对规格官方验证过的最低配置如下。项目建议规格说明CPU≥ 2 核官方验证配置内存8GB含 2GB swap低于此值搜索索引容易报错磁盘≥ 13GB容纳镜像与数据卷DockerEngine Compose v2Linux 需单独装 composePython3.10给 DataHub CLI 用三条命令确认docker --version docker compose version python3 --version如果是 Docker Desktop先确认设置里的 CPU 和内存配额。安装方法看 docker/README.md本文不展开教程。对比两条部署路径环境确认后选一条路径动手。两条路都能跑通。维度路径 ACLI 一键路径 B手动 compose适合人群新手、快速验证需要自定义配置的开发者耗时约 10 分钟15 分钟以上需读懂 compose 文件可控性低配置由 CLI 托管高可加服务、改任意项版本固定--version参数直接写镜像 tagDataHub 容器化部署的整体流程数据源侧采集元数据经过接入层供下游 API 与流集成消费。快速启动的栈里跑着 MySQL主存储、Kafka消息总线、OpenSearch搜索索引、system-update初始化任务、GMS元数据服务和前端等容器单台机器即可完整体验。资源不够时最先挂掉的通常是搜索和消息队列容器。路径 A 两行python3 -m pip install --upgrade acryl-datahub datahub docker quickstartCLI 会把 compose 文件下载到~/.datahub/quickstart/镜像默认quickstart标签而非latest。这条命令拉镜像、等健康检查、初始化任务跑完才算成功全程约 5-10 分钟。✅ 成功后访问http://localhost:9002默认账号datahub、密码datahub再用datahub docker check复核。路径 B 适合要改配置的场景所有调整放在你自己工作目录的 override 文件里不碰仓库git clone https://gitcode.com/GitHub_Trending/da/datahub cd datahub/docker/profiles docker compose --profile quickstart up -ddocker-compose.yml 聚合了存储、前端、GMS 等子文件--profile quickstart挑出快速启动所需的一组服务。compose 文件结构以官方文档为准。改最常动的 4 个配置项compose 文件里大量变量写成${VAR:-默认值}形式DataHub 环境变量就是最常用的定制手段。最常改的只有 4 处。1. 端口映射。改什么DATAHUB_MAPPED_*_PORT系列宿主端口。为什么9002、8080、3306、9092、9200 这些默认端口最容易和本地服务撞。怎么改ports: - ${DATAHUB_MAPPED_FRONTEND_PORT:-9002}:9002CLI 路径支持--mysql-port 53306之类的标志GMS 端口用环境变量DATAHUB_MAPPED_GMS_PORT58080 datahub docker quickstart。端口冲突是新手第一坑先查本地占用再改。2. JVM 内存。改什么GMS 的JAVA_OPTS。为什么默认堆只有 1G元数据量大时会 OOM。怎么改CLI 路径改~/.datahub/quickstart/里 env 文件中的JAVA_OPTS手动路径在你自己的 compose 文件 GMS 服务environment段加一行environment: JAVA_OPTS: -Xms2g -Xmx4g各服务默认堆定义在 docker/datahub-gms/env/docker.env 这类 env 文件里变量优先级以官方文档为准。3. 数据持久化卷。改什么mysqldata、osdata、broker等命名卷。为什么不挂卷的话删容器数据全丢。怎么改在你自己的 override 文件里把命名卷改成 bind mountvolumes: osdata: driver: local driver_opts: type: none o: bind device: /data/esdevice必须是已存在的目录。这种 DataHub 数据持久化方式迁移生产时同样适用。注意卷定义变更不会热生效docker compose down之后再up。4. 服务依赖顺序。改什么depends_on条件。为什么启动顺序决定整套能不能起来。快速启动的链路是MySQL、OpenSearch、Kafka 健康 →system-update完成 → GMS 健康 → 前端启动。怎么改不建议乱动现有条件条件写错容器会直接跳过启动新增自定义服务时照这个写法depends_on: datahub-gms-quickstart: condition: service_healthy具体服务定义见 docker-compose.gms.yml。日常操作速查表实例跑起来后日常操作基本就是下面这张表。操作命令一句话说明启动 / 升级datahub docker quickstart重跑拉新镜像数据不丢检查状态datahub docker check校验各容器是否健康看日志docker compose logs -f datahub-gms实时跟踪在 compose 目录执行停止datahub docker quickstart --stop只停服务保留数据备份datahub docker quickstart --backup导出 MySQL 为backup.sql恢复datahub docker quickstart --restore用备份还原库和索引彻底清理datahub docker nuke删容器和卷数据清空清残留docker system prune清理无用镜像与卷备份文件默认存在~/.datahub/quickstart/自定义路径看--backup-file参数。注意 quickstart 备份不含时序统计数据。命令找不到datahub时用python3 -m datahub前缀重试。停掉再启动数据都还在只有nuke会清空。排掉三个高频坑⚠️GMS 反复重启。现象datahub-gms反复重启日志里连不上 MySQL 或搜索服务。根因Docker 内存分配不够依赖服务没就绪。解法给 Docker 至少 8GB 内存 2GB swap 再重启。这一步卡住的人最多。⚠️端口冲突。现象bind: address already in use。根因本地服务占了 3306、9092、9002 等端口。解法用--mysql-port标志或DATAHUB_MAPPED_*_PORT环境变量挪端口。⚠️ARM 架构报错。现象no matching manifest for linux/arm64/v8。根因CLI 没识别出 Apple Silicon 架构。解法datahub docker quickstart --arch m1。把 Quickstart 迁往生产quickstart 配置只适合本地验证。正式环境按 Deploying DataHub with Kubernetes 迁移到 K8s换外部托管的数据库和消息队列接入 Prometheus 监控。【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进