EasyScheduler项目Docker部署完全指南
dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/ea/EasyScheduler
前言
EasyScheduler是一个分布式易扩展的可视化工作流任务调度系统,本文将详细介绍如何通过Docker容器化方式快速部署EasyScheduler系统。通过本文,您将掌握三种不同的Docker部署方式,满足从快速体验到生产环境的各种需求。
环境准备
在开始部署前,请确保您的系统满足以下要求:
- Docker引擎版本1.13.1或更高
- Docker Compose版本1.28.0或更高
- 建议系统内存不少于4GB(生产环境建议8GB以上)
三种部署方式对比
| 部署方式 | 适用场景 | 特点 | 推荐内存 | |---------|---------|------|---------| | standalone-server镜像 | 快速体验 | 单容器运行所有服务,使用H2内存数据库 | 2GB | | docker-compose方式 | 完整功能体验 | 多容器独立运行,使用PostgreSQL持久化存储 | 4GB | | 自定义基础服务方式 | 生产环境 | 复用现有数据库和ZooKeeper服务 | 视业务规模而定 |
详细部署指南
1. 快速体验模式(standalone-server)
这种方式适合想要快速了解EasyScheduler功能的用户:
$ ES_VERSION=<版本号>
$ docker run --name easyscheduler-standalone \
-p 12345:12345 \
-p 25333:25333 \
-d analysys/easyscheduler-standalone-server:"${ES_VERSION}"
技术说明:
- 该镜像将所有服务(Master、Worker、API等)打包在单个容器中运行
- 使用H2内存数据库,容器停止后数据将丢失
- 仅包含核心功能,不包含Spark/Flink等任务插件
2. 完整服务模式(docker-compose)
这是推荐的体验完整功能的方式:
$ ES_VERSION=<版本号>
$ tar -zxf easyscheduler-"${ES_VERSION}"-src.tar.gz
$ cd easyscheduler-"${ES_VERSION}"-src/deploy/docker
# 初始化数据库结构
$ docker-compose --profile schema up -d
# 启动全部服务
$ docker-compose --profile all up -d
关键配置项:
docker-compose.yaml
文件中可调整各服务资源限制- PostgreSQL数据默认存储在docker卷中,如需持久化可修改为本地目录挂载
- 各服务日志可通过docker logs查看
3. 生产环境模式(自定义基础服务)
当您已有PostgreSQL和ZooKeeper服务时:
$ ES_VERSION=<版本号>
# 初始化数据库
$ docker run -d --name easyscheduler-tools \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://<数据库地址>:5432/<数据库名>" \
-e SPRING_DATASOURCE_USERNAME="<用户名>" \
-e SPRING_DATASOURCE_PASSWORD="<密码>" \
--net host \
analysys/easyscheduler-tools:"${ES_VERSION}" tools/bin/upgrade-schema.sh
# 启动各服务组件(示例为Master服务)
$ docker run -d --name easyscheduler-master \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://<数据库地址>:5432/<数据库名>" \
-e SPRING_DATASOURCE_USERNAME="<用户名>" \
-e SPRING_DATASOURCE_PASSWORD="<密码>" \
-e REGISTRY_ZOOKEEPER_CONNECT_STRING="<ZK地址>:2181" \
--net host \
analysys/easyscheduler-master:"${ES_VERSION}"
生产环境建议:
- 为每个服务组件配置独立的资源限制
- 考虑使用Swarm或Kubernetes进行容器编排
- 配置日志收集系统集中管理日志
- 设置定期数据库备份策略
系统访问与配置
部署完成后,通过以下方式访问:
- 访问地址:
http://<服务器IP>:12345/easyscheduler/ui
- 默认账号:admin/dolphinscheduler123
常见配置调整:
- 时区设置:通过
SPRING_JACKSON_TIME_ZONE
环境变量 - 邮件告警:配置
application-mail.properties
相关参数 - 资源中心:修改
common.properties
中的存储配置
故障排查指南
-
服务启动失败:
- 检查docker日志:
docker logs <容器名>
- 确认端口未被占用
- 验证数据库连接配置
- 检查docker日志:
-
无法访问UI:
- 检查API服务是否正常运行
- 验证防火墙设置
- 确认nginx代理配置(如有)
-
任务执行异常:
- 检查Worker服务日志
- 验证任务资源是否配置正确
- 确认依赖服务(如HDFS/YARN)可访问
最佳实践建议
-
数据持久化:
- 生产环境务必配置数据库持久化
- 考虑使用云数据库服务提高可用性
-
高可用部署:
- Master/Worker建议部署多个实例
- 配置负载均衡访问API服务
-
性能优化:
- 根据任务量调整各服务资源分配
- 合理设置任务并行度参数
-
监控告警:
- 配置Prometheus监控各服务指标
- 设置关键指标告警阈值
总结
本文详细介绍了EasyScheduler的三种Docker化部署方式,从快速体验到生产环境部署都提供了完整指导。在实际应用中,建议根据业务规模选择合适的部署方案,并做好相应的监控和维护工作,确保调度系统的稳定运行。
dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/ea/EasyScheduler
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考