首页
/ Apache DolphinScheduler Docker Compose 部署指南

Apache DolphinScheduler Docker Compose 部署指南

2025-07-06 04:36:40作者:范靓好Udolf

概述

Apache DolphinScheduler 是一个分布式易扩展的可视化工作流任务调度系统。本文将通过 Docker Compose 方式详细讲解如何部署 DolphinScheduler 的完整服务集群。

核心组件解析

DolphinScheduler 的 Docker Compose 部署包含以下核心服务:

  1. PostgreSQL 数据库:存储工作流元数据、用户信息等
  2. ZooKeeper 服务:提供分布式协调服务
  3. API 服务:提供 RESTful API 接口
  4. Alert 服务:负责告警通知
  5. Master 服务:工作流调度主节点
  6. Worker 服务:任务执行节点

详细配置说明

数据库服务配置

dolphinscheduler-postgresql:
  image: bitnami/postgresql:11.11.0
  environment:
    POSTGRESQL_USERNAME: root
    POSTGRESQL_PASSWORD: root
    POSTGRESQL_DATABASE: dolphinscheduler
  • 使用 Bitnami 提供的 PostgreSQL 11.11.0 镜像
  • 预设了用户名、密码和数据库名称
  • 数据通过卷持久化存储

ZooKeeper 服务配置

dolphinscheduler-zookeeper:
  image: bitnami/zookeeper:3.6.2
  environment:
    ALLOW_ANONYMOUS_LOGIN: "yes"
  • 使用 ZooKeeper 3.6.2 版本
  • 允许匿名登录(仅限测试环境)
  • 开放了 srvr、ruok 等监控命令

API 服务配置

dolphinscheduler-api:
  image: apache/dolphinscheduler:2.0.7
  command: api-server
  ports:
    - 12345:12345
  • 使用 DolphinScheduler 2.0.7 官方镜像
  • 暴露 12345 端口供外部访问
  • 依赖 PostgreSQL 和 ZooKeeper 服务
  • 配置了健康检查机制

Master 服务配置

dolphinscheduler-master:
  image: apache/dolphinscheduler:2.0.7
  command: master-server
  • Master 服务负责工作流调度
  • 同样依赖数据库和 ZooKeeper
  • 日志和共享目录通过卷挂载

Worker 服务配置

dolphinscheduler-worker:
  image: apache/dolphinscheduler:2.0.7
  command: worker-server
  volumes:
    - dolphinscheduler-worker-data:/tmp/dolphinscheduler
  • Worker 服务负责实际任务执行
  • 有独立的数据卷存储临时文件
  • 可以横向扩展多个 Worker 实例

网络与存储配置

网络配置

networks:
  dolphinscheduler:
    driver: bridge
  • 创建名为 dolphinscheduler 的桥接网络
  • 所有服务在同一网络内可互相通信

卷配置

volumes:
  dolphinscheduler-postgresql:
  dolphinscheduler-zookeeper:
  dolphinscheduler-worker-data:
  dolphinscheduler-logs:
  • 为各服务配置独立的数据卷
  • 确保数据持久化不丢失
  • 日志集中存储便于排查问题

部署实践建议

  1. 生产环境调整

    • 修改默认数据库密码
    • 关闭 ZooKeeper 匿名访问
    • 根据负载调整服务资源限制
  2. 高可用部署

    • 可以扩展多个 Master 实例
    • 增加 Worker 节点数量
    • 考虑使用外部数据库集群
  3. 监控配置

    • 对各服务配置监控探针
    • 收集和分析日志数据
    • 设置合理的告警阈值

常见问题处理

  1. 服务启动顺序问题

    • 使用 depends_on 确保依赖服务先启动
    • 添加健康检查避免服务未就绪时被调用
  2. 资源不足问题

    • 调整 JVM 内存参数
    • 增加容器资源限制
  3. 时区问题

    • 所有服务统一配置 TZ: Asia/Shanghai
    • 确保主机时区与容器一致

通过本文介绍的 Docker Compose 部署方式,您可以快速搭建一个功能完整的 DolphinScheduler 集群环境,为后续的工作流开发和任务调度打下坚实基础。