10分钟部署DataHub:Docker Compose 部署完整实操指南 📅 发布时间:2026/8/24 11:44:27 👁 浏览次数: 10分钟部署DataHubDocker Compose 部署完整实操指南【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub本文面向需要本地跑通 DataHub 的工程师按官方docker/目录的真实配置讲清 DataHub Docker Compose 部署全流程环境自检、三种启动方式、启动验证、调参、运维与排障命令可直接复制执行。动手前先搞清 DataHub 是什么quickstart一套 compose 拉起的不止 GMS 一个容器而是一整条存储 服务链路。先建立这个认知后面看日志、排故障才不迷路。默认quickstartprofile 包含以下组件见docker/profiles/docker-compose.yml及其 include 的docker-compose.prerequisites.yml、docker-compose.gms.yml组件容器/服务名职责默认宿主端口前端datahub-frontend-reactWeb 界面浏览、搜索、血缘、治理9002GMS 后端datahub-gmsREST/GraphQL/REST.li API默认内嵌 MAE/MCE 消费者8080管理口 4319MySQLmysql主存储实体、策略等默认账号密码datahub/datahub3306搜索引擎opensearch或elasticsearch搜索索引、图谱、时序数据9200Kafkakafka-broker元数据事件通道KRaft 模式无独立 Zookeeper9092内部 29092系统初始化system-updatedatahub-upgrade镜像一次性任务建库、建搜索索引跑完即退出—Actionsdatahub-actions元数据事件触发的自动化动作执行器—启动顺序由depends_on决定链路是MySQL / OpenSearch / Kafka 就绪healthcheck 通过→ system-update 建库建索引service_completed_successfully→ GMSservice_healthy→ 前端与 Actions。注意较新版本 Kafka 跑 KRaft不再有旧版的Zookeeper → Kafka一级依赖。30秒自检部署环境版本与资源底线检查项底线要求验证命令Docker Engine已安装并运行docker --versionDocker Composev2profiles 用法要求 ≥ 2.20docker compose versionPython3.10CLI 依赖python3 --version硬件2 核 / 8GB 内存 / 2GB Swap / 13GB 磁盘官方实测配置—docker --version # 确认 Docker 可用 docker compose version # 确认 Compose 插件Linux 需单独安装 python3 --version # 确认 Python 3.10Docker Desktop 里记得把内存给足 8GB内存不足是 GMS 反复重启的头号原因。对比3种DataHub快速启动方式选最省事的方式前置条件适合场景特点① CLI 一键✅ 推荐Python 3.10绝大多数人自动下载 compose 文件到~/.datahub/quickstart内置--backup/--restore/--version② Gradle 任务clone 仓库 JDK已在仓库内开发直接用docker/profiles/里的 compose可换 profile 组合③ 手动 composeclone 仓库要改配置再拉起完全手动自定义空间最大方式①CLI 一键推荐# 安装或升级DataHub CLI python3 -m pip install --upgrade acryl-datahub datahub version # 一键启动自动拉取镜像并等待各容器健康 datahub docker quickstart方式②Gradle 任务git clone https://gitcode.com/GitHub_Trending/da/datahub cd datahub ./gradlew quickstart # 等价于在 docker/profiles 下用 quickstart profile 拉起方式③手动 composecd datahub/docker/profiles docker compose --profile quickstart up # 前台运行CtrlC 停止全部容器需要固定版本时用 release 标签或提交 sha 覆盖默认的quickstart标签quickstart标签不要用于生产集群datahub docker quickstart --version v1.6.0 # CLI 指定版本 DATAHUB_VERSIONv0.12.1 docker compose --profile quickstart up # compose 指定版本启动后怎么确认 DataHub 部署成功四步验证任一通过即可认为链路是通的CLI 输出出现✔ DataHub is now running浏览器访问http://localhost:9002用默认账号登录用户名datahub密码datahub命令行探活cd docker/profiles docker compose --profile quickstart ps # 各容器应显示 Healthy / Started / Exited(0) curl -sI http://localhost:9002 # 返回 HTTP 200 即可想立刻看到内容加载官方演示数据集约 1000 实体含血缘与治理信息datahub init --username datahub --password datahub # CLI 指向本地实例 datahub datapack load showcase-ecommerce常用调参手册改端口、调内存、数据落盘改端口所有宿主端口都走DATAHUB_MAPPED_*_PORT变量默认值来自 compose 的${VAR:-默认}目标环境变量默认值前端DATAHUB_MAPPED_FRONTEND_PORT9002GMSDATAHUB_MAPPED_GMS_PORT管理口DATAHUB_MAPPED_GMS_MANAGEMENT_PORT80804319MySQLDATAHUB_MAPPED_MYSQL_PORT3306搜索引擎DATAHUB_MAPPED_ELASTIC_PORT9200KafkaDATAHUB_MAPPED_KAFKA_BROKER_PORT9092Neo4jcassandra profileDATAHUB_MAPPED_NEO4J_HTTP_PORT/DATAHUB_MAPPED_NEO4J_BOLT_PORT7474 / 7687调内存给 GMS 容器传 JVM 参数即可典型配置如下GMS_JAVA_OPTS-Xms2g -Xmx4g datahub docker quickstart # 等价通道JAVA_TOOL_OPTIONS-Xms2g -Xmx4g数据落盘数据默认存在命名卷里mysqldata、osdata/esdata、broker、cassandradata、neo4jdatadown不删卷数据不丢。要改到指定目录只改卷的 driver_optsvolumes: mysqldata: driver: local driver_opts: type: none o: bind device: /path/to/local/mysqldata按场景选 profile都在docker/profiles/用--profile切换profile差异点quickstart默认MySQL OpenSearch Kafka消费内嵌 GMSquickstart-postgresPostgres 替代 MySQL用 pgQueue 替代 Kafkaquickstart-cassandraCassandra 主存储 Neo4j 图库quickstart-consumersMAE/MCE 消费者独立成容器quickstart-storage只起存储层前端/GMS 在你本机跑debug系列用本地构建的 debug 镜像开 JVM 远程调试5001/5002与 4319 actuatordocker compose --profile quickstart-postgres up # 换 Postgres 方案DataHub 运维命令速查启停、日志、升级、备份# ---- 启停与状态 ---- datahub docker quickstart --stop # 停止数据保留 docker compose --profile quickstart ps # 状态 docker compose --profile quickstart logs -f datahub-gms-quickstart # 跟踪 GMS 日志 # ---- 升级 ---- datahub docker quickstart # 重跑即升级拉新镜像、重启数据不丢 datahub docker quickstart --version v1.6.0 # 升级到指定版本 # ---- 备份 / 恢复 ---- datahub docker quickstart --backup # 备份 MySQL 到 ~/.datahub/quickstart/backup.sql datahub docker quickstart --restore # 全量恢复库 索引 datahub docker quickstart --restore-indices # 仅从主存储重建搜索索引 # ---- 彻底清理容器 卷 数据不可恢复---- datahub docker nuke ./gradlew quickstartNuke # Gradle 等价清理⚠️ 备份不含时序数据查询量、统计、profile恢复后这部分会丢介意的话先导出。排障手册GMS 重启、端口冲突、M1 架构现象可能原因解决方案GMS 容器反复重启RestartingDocker 内存不足导致 JVM OOM下游未就绪给 Docker 分配 ≥8GB用GMS_JAVA_OPTS/JAVA_TOOL_OPTIONS调堆docker compose --profile quickstart logs datahub-gms-quickstart看具体报错Bind for 0.0.0.0:9002 failed: port is already allocated端口被其他服务占用改DATAHUB_MAPPED_*_PORT到空闲端口后重启no matching manifest for linux/arm64拉取的标签没有 ARM 构建Apple Silicon 常见用多架构的quickstart标签或 release 版本标签DATAHUB_VERSION...固定更新 Docker Desktop 到新版system-update非零退出后续服务卡在 WaitingMySQL/OpenSearch 健康检查未过docker compose --profile quickstart ps逐个看健康检查确认磁盘空间再看对应容器日志首次启动十几分钟才完成首次要拉一堆镜像提前docker compose --profile quickstart pull或配置镜像加速登录 9002 提示凭证错误默认账号是datahub不是admin用datahub/datahub登录需要换默认账号见 变更默认凭证文档更细的本地调试问题可查 快速启动排障文档。从本地走向生产一份简短清单quickstart 的定位是本地体验与功能验证上生产前过一遍这五项凭证改掉datahub/datahub默认账号设置自己的DATAHUB_SECRET与 token 签名密钥HS256 要求 ≥256 位随机值网络端口绑127.0.0.1MySQL、Kafka、搜索引擎不要暴露公网外部依赖生产优先用托管 MySQL/Kafka/搜索引擎而非容器内自建部署形态用 Kubernetes Helm 做多副本与滚动发布参考 Kubernetes 部署文档镜像固定 release 标签不用quickstart标签监控docker/monitoring/下提供 Prometheus Grafana 配置GMS 管理口 4319 可被 scrape。小结Docker Compose 让你用一条datahub docker quickstart就能拥有完整可验证的 DataHub 环境本文的调参与排障部分覆盖了从改端口到清数据的全部日常操作。更多细节以仓库内 docs/quickstart.md 和 docker/README.md 为准遇到阻塞问题可以去 DataHub 社区渠道提问通常响应很快。【免费下载链接】datahubThe Context Platform for your Data and AI Stack项目地址: https://gitcode.com/GitHub_Trending/da/datahub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考