Apache DolphinScheduler 基于 Docker 的快速部署指南
前言
Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。本文将为开发者详细介绍如何使用 Docker 快速部署 DolphinScheduler,涵盖三种不同的部署方式,帮助用户根据自身需求选择最适合的方案。
环境准备
在开始部署前,请确保您的系统满足以下要求:
- Docker 1.13.1 或更高版本
- Docker Compose 1.28.0 或更高版本(如需使用 docker-compose 部署)
- 建议系统内存不少于 4GB
部署方案选择
DolphinScheduler 提供了三种 Docker 部署方式,各有特点:
1. 单机版快速体验(standalone-server)
适用场景:快速体验 DolphinScheduler 核心功能
特点:
- 所有服务运行在单个容器中
- 使用内存数据库 H2,数据不持久化
- 启动速度快,适合功能演示和初步了解
部署命令:
DOLPHINSCHEDULER_VERSION=<版本号>
docker run --name dolphinscheduler-standalone-server \
-p 12345:12345 -p 25333:25333 \
-d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
注意事项:
- 此方式不适合生产环境
- 重启容器后数据会丢失
- 部分高级功能(如 Spark/Flink 任务、告警组件)需要额外配置
2. Docker Compose 完整部署
适用场景:需要完整功能体验,且希望服务持久化
特点:
- 各服务独立运行在不同容器中
- 使用 PostgreSQL 持久化元数据
- 包含 ZooKeeper 服务发现
- 系统更健壮,适合长期使用
部署步骤:
- 下载 DolphinScheduler 源码包
- 解压并进入 docker 部署目录
- 初始化数据库结构:
docker-compose --profile schema up -d
- 启动所有服务:
docker-compose --profile all up -d
系统优化建议:
- 为 Docker 容器分配足够内存(建议不少于 4GB)
- 考虑将数据卷挂载到宿主机以实现数据持久化
3. 使用已有数据库和 ZooKeeper 服务
适用场景:已有 PostgreSQL 和 ZooKeeper 基础设施
特点:
- 复用现有基础设施
- 更灵活的资源管理
- 适合已有完善基础设施的环境
部署流程:
- 确保 PostgreSQL(8.2.15+)和 ZooKeeper(3.8.0+)服务正常运行
- 初始化数据库结构:
docker run -d --name dolphinscheduler-tools \ -e DATABASE="postgresql" \ -e SPRING_DATASOURCE_URL="jdbc:postgresql://<数据库地址>:5432/<数据库名>" \ -e SPRING_DATASOURCE_USERNAME="<用户名>" \ -e SPRING_DATASOURCE_PASSWORD="<密码>" \ -e SPRING_JACKSON_TIME_ZONE="UTC" \ --net host \ apache/dolphinscheduler-tools:"${DOLPHINSCHEDULER_VERSION}" tools/bin/upgrade-schema.sh
- 分别启动各服务组件(Master、Worker、API、Alert Server)
系统访问与登录
部署完成后,可通过以下方式访问系统:
- 浏览器访问:
http://<主机IP或域名>:12345/dolphinscheduler/ui
- 默认登录凭证:
- 用户名:admin
- 密码:dolphinscheduler123
环境变量配置
DolphinScheduler 支持通过环境变量配置各项参数,常见配置包括:
- 数据库连接参数
- 时区设置
- ZooKeeper 连接配置
- 各服务特有参数
具体配置项可参考各组件对应的 application.yaml 文件。
总结
本文详细介绍了 Apache DolphinScheduler 的三种 Docker 部署方式,从快速体验到生产级部署,开发者可根据实际需求选择合适的方案。无论选择哪种方式,DolphinScheduler 都能提供强大的工作流调度能力,帮助用户高效管理复杂的数据处理任务。
对于生产环境,建议采用 Docker Compose 或自定义基础设施的部署方式,并做好数据备份和系统监控工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考