EasyScheduler项目Docker部署完全指南

EasyScheduler项目Docker部署完全指南

dolphinscheduler dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/ea/EasyScheduler

前言

EasyScheduler是一个分布式易扩展的可视化工作流任务调度系统,本文将详细介绍如何通过Docker容器化方式快速部署EasyScheduler系统。通过本文,您将掌握三种不同的Docker部署方式,满足从快速体验到生产环境的各种需求。

环境准备

在开始部署前,请确保您的系统满足以下要求:

  1. Docker引擎版本1.13.1或更高
  2. Docker Compose版本1.28.0或更高
  3. 建议系统内存不少于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}"

生产环境建议

  1. 为每个服务组件配置独立的资源限制
  2. 考虑使用Swarm或Kubernetes进行容器编排
  3. 配置日志收集系统集中管理日志
  4. 设置定期数据库备份策略

系统访问与配置

部署完成后,通过以下方式访问:

  1. 访问地址:http://<服务器IP>:12345/easyscheduler/ui
  2. 默认账号:admin/dolphinscheduler123

常见配置调整

  • 时区设置:通过SPRING_JACKSON_TIME_ZONE环境变量
  • 邮件告警:配置application-mail.properties相关参数
  • 资源中心:修改common.properties中的存储配置

故障排查指南

  1. 服务启动失败

    • 检查docker日志:docker logs <容器名>
    • 确认端口未被占用
    • 验证数据库连接配置
  2. 无法访问UI

    • 检查API服务是否正常运行
    • 验证防火墙设置
    • 确认nginx代理配置(如有)
  3. 任务执行异常

    • 检查Worker服务日志
    • 验证任务资源是否配置正确
    • 确认依赖服务(如HDFS/YARN)可访问

最佳实践建议

  1. 数据持久化

    • 生产环境务必配置数据库持久化
    • 考虑使用云数据库服务提高可用性
  2. 高可用部署

    • Master/Worker建议部署多个实例
    • 配置负载均衡访问API服务
  3. 性能优化

    • 根据任务量调整各服务资源分配
    • 合理设置任务并行度参数
  4. 监控告警

    • 配置Prometheus监控各服务指标
    • 设置关键指标告警阈值

总结

本文详细介绍了EasyScheduler的三种Docker化部署方式,从快速体验到生产环境部署都提供了完整指导。在实际应用中,建议根据业务规模选择合适的部署方案,并做好相应的监控和维护工作,确保调度系统的稳定运行。

dolphinscheduler dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/ea/EasyScheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时飞城Herdsman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值