Docker环境下DolphinScheduler与MongoDB单机部署全攻略
2025.09.17 11:04浏览量:0简介:本文详细介绍在Docker单机环境下,如何通过容器化技术部署DolphinScheduler工作流引擎与MongoDB数据库,覆盖从环境准备到配置优化的全流程。
一、环境准备与Docker基础配置
1.1 硬件资源评估与Docker安装
在单机部署场景下,需根据业务规模评估资源需求。DolphinScheduler建议配置为4核8GB内存,MongoDB建议2核4GB内存,实际部署时可动态分配资源。Docker安装需选择稳定版本(如24.0.7),通过官方脚本或包管理器完成安装,验证安装后运行docker version
确认服务状态。
1.2 网络模式选择与存储规划
Docker网络配置推荐使用bridge模式,通过docker network create ds-mongo-net
创建专用网络,确保容器间通信效率。存储方面,MongoDB需配置持久化卷,DolphinScheduler则需挂载配置目录与日志目录。示例命令:
docker volume create mongo-data
docker volume create ds-config
二、MongoDB单机容器化部署
2.1 镜像选择与参数配置
选用官方MongoDB镜像(mongo:6.0),启动时需配置认证参数与数据目录挂载:
docker run -d --name mongo-ds \
--network ds-mongo-net \
-v mongo-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=your_password \
mongo:6.0 --auth
关键参数说明:
--auth
:启用认证模式-v
:挂载数据卷实现持久化- 环境变量:设置管理员账号密码
2.2 数据库初始化与连接测试
进入容器创建专用数据库:
docker exec -it mongo-ds mongosh -u admin -p your_password
use dolphinscheduler;
db.createUser({user:"ds_user",pwd:"ds_pass",roles:[{role:"readWrite",db:"dolphinscheduler"}]});
验证连接:
mongosh "mongodb://ds_user:ds_pass@localhost:27017/dolphinscheduler"
三、DolphinScheduler容器化部署
3.1 镜像获取与配置文件准备
从Apache官方仓库获取镜像(apache/dolphinscheduler:3.1.7),需准备以下配置文件:
application.yml
:修改数据库连接为mongodb://ds_user:ds_pass@mongo-ds:27017/dolphinscheduler
common.properties
:配置master/worker节点内存参数quartz.properties
:调整定时任务线程数
3.2 多容器编排部署
采用docker-compose实现服务编排,核心配置示例:
version: '3.8'
services:
dolphin-master:
image: apache/dolphinscheduler:3.1.7
environment:
- DATABASE_TYPE=mongodb
- SPRING_DATASOURCE_URL=mongodb://ds_user:ds_pass@mongo-ds:27017/dolphinscheduler
volumes:
- ds-config:/opt/dolphinscheduler/conf
depends_on:
- mongo-ds
dolphin-worker:
image: apache/dolphinscheduler:3.1.7
environment:
- WORKER_EXEC_THREADS=100
- WORKER_MEM_USAGE_CHECK_INTERVAL=60
volumes:
- ds-logs:/opt/dolphinscheduler/logs
volumes:
ds-config:
ds-logs:
四、系统调优与故障排查
4.1 性能优化策略
- MongoDB调优:设置
wiredTigerCacheSizeGB
参数控制缓存大小 - DolphinScheduler调优:调整
worker.prefetch.queue.size
参数优化任务队列 - 资源限制:通过
--cpus
和--memory
参数控制容器资源使用
4.2 常见问题解决方案
- 连接超时:检查网络配置与防火墙规则,确保27017端口开放
- 认证失败:验证MongoDB用户权限,确认密码无特殊字符转义问题
- 任务堆积:增加worker节点数量或调整线程池配置
- 日志缺失:检查卷挂载路径权限,确保容器有写入权限
五、运维监控体系构建
5.1 监控指标收集
- MongoDB监控:使用
mongostat
和mongotop
工具 - DolphinScheduler监控:通过Prometheus收集JMX指标
- 容器监控:配置cAdvisor收集资源使用数据
5.2 备份恢复方案
MongoDB备份:
docker exec mongo-ds mongodump --out /backup/ --db dolphinscheduler
DolphinScheduler配置备份:
docker cp dolphin-master:/opt/dolphinscheduler/conf ./backup/
六、扩展性考虑
6.1 水平扩展方案
- MongoDB分片集群:通过
mongos
路由节点实现水平扩展 - DolphinScheduler集群:增加worker节点并配置负载均衡
6.2 混合部署建议
对于资源有限的单机环境,可采用时序复用策略:
- 非高峰期运行数据分析任务
- 高峰期优先保障实时工作流
- 通过
docker update
动态调整资源限制
本方案通过容器化技术实现了DolphinScheduler与MongoDB的高效部署,在保证系统稳定性的同时,提供了灵活的扩展能力。实际部署时需根据具体业务场景调整参数配置,建议通过CI/CD管道实现自动化部署,进一步提升运维效率。对于生产环境,建议增加高可用配置,如MongoDB副本集和DolphinScheduler多主节点部署。
发表评论
登录后可评论,请前往 登录 或 注册