DolphinScheduler单机模式与YARN HA集成部署指南
2025.09.17 11:04浏览量:0简介:本文深入解析DolphinScheduler单机部署模式,结合YARN HA高可用架构,提供从环境准备到故障恢复的完整部署方案,助力企业构建稳定可靠的工作流调度系统。
一、DolphinScheduler单机部署核心价值
DolphinScheduler作为开源工作流调度引擎,单机部署模式以其轻量化、易维护的特性,成为中小规模团队或测试环境的首选方案。其核心优势体现在:
- 资源占用优化:单机模式仅需单节点运行,降低硬件成本,适合资源有限场景。
- 快速部署验证:无需复杂集群配置,支持快速功能验证与开发测试。
- 简化运维复杂度:单节点架构减少了网络通信与同步开销,故障排查更直接。
但单机模式存在单点故障风险,需通过YARN HA(High Availability)架构增强可靠性。YARN HA通过主备ResourceManager(RM)实现故障自动切换,确保任务调度不中断。
二、环境准备与依赖安装
1. 基础环境要求
- 操作系统:CentOS 7.x/Ubuntu 20.04+
- Java环境:JDK 1.8+(推荐OpenJDK)
- 数据库:PostgreSQL 9.6+/MySQL 5.7+(需配置主从)
- YARN集群:Hadoop 3.x(启用HA模式)
2. YARN HA配置关键步骤
- 修改core-site.xml:
<property>
<name>hadoop.ha.zookeeper.quorum</name>
<value>zk1:2181,zk2:2181,zk3:2181</value>
</property>
- 配置hdfs-site.xml:
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
- 启用YARN HA:
在yarn-site.xml
中添加:<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-cluster</value>
</property>
三、DolphinScheduler单机部署流程
1. 下载与解压
wget https://dist.apache.org/repos/dist/release/dolphinscheduler/3.1.2/apache-dolphinscheduler-3.1.2-bin.tar.gz
tar -xzf apache-dolphinscheduler-3.1.2-bin.tar.gz -C /opt/
2. 数据库初始化
- 创建DolphinScheduler专用数据库:
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 执行SQL脚本(位于
/opt/dolphinscheduler/sql/
目录)
3. 配置文件修改
编辑/opt/dolphinscheduler/conf/common.properties
:
# 数据库配置
spring.datasource.url=jdbc:postgresql://db-master:5432/dolphinscheduler
spring.datasource.username=ds_user
spring.datasource.password=your_password
# YARN HA配置
yarn.application.status.address=http://rm1:8088,http://rm2:8088
yarn.resourcemanager.ha.rm.ids=rm1,rm2
4. 启动服务
# 初始化元数据
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start meta-init
# 启动API服务
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server
# 启动Master服务(单机模式仅需启动一个)
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server
# 启动Worker服务
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server
四、YARN HA集成深度解析
1. 资源调度机制
DolphinScheduler通过YARN Client提交任务时,YARN HA确保:
- 自动故障转移:当主RM宕机时,ZooKeeper协调备RM接管
- 资源请求重试:任务提交失败时自动重试备RM节点
- 状态一致性:通过共享编辑日志维持集群状态同步
2. 配置验证方法
- 检查RM状态:
yarn rmadmin -getServiceState rm1
yarn rmadmin -getServiceState rm2
- 模拟故障测试:
# 停止主RM
systemctl stop hadoop-yarn-resourcemanager
# 观察备RM是否自动升级为主RM
五、高可用部署最佳实践
1. 监控告警配置
- Prometheus集成:
# prometheus.yml配置示例
scrape_configs:
- job_name: 'dolphinscheduler'
static_configs:
- targets: ['ds-master:12345']
- 关键指标监控:
dolphinscheduler_task_queue_size
:任务积压量yarn_application_running_count
:YARN运行任务数dolphinscheduler_worker_heartbeat
:Worker存活状态
2. 备份恢复策略
- 数据库备份:
# 每日全量备份
pg_dump -U ds_user -h db-master dolphinscheduler > ds_backup_$(date +%Y%m%d).sql
- 配置文件版本控制:
使用Git管理/opt/dolphinscheduler/conf/
目录,确保配置可追溯。
3. 性能调优建议
- Worker内存配置:
在worker.properties
中调整:worker.exec.threads=100
worker.memory.limit=8G
- YARN队列分配:
在capacity-scheduler.xml
中为DolphinScheduler分配专用队列:<queue name="ds-queue">
<capacity>30%</capacity>
<max-capacity>50%</max-capacity>
</queue>
六、常见问题解决方案
1. YARN连接失败排查
- 检查网络连通性:
telnet rm1 8088
telnet rm2 8088
- 验证认证配置:
确保common.properties
中yarn.principal
和yarn.keytab
配置正确。
2. 任务积压处理
- 动态扩容Worker:
# 临时增加Worker节点
sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server
- 调整任务优先级:
通过API修改任务优先级:curl -X PUT "http://ds-api:12345/dolphinscheduler/projects/{projectId}/executions/{executionId}" \
-H "Content-Type: application/json" \
-d '{"priority": 5}'
七、进阶部署方案
1. 容器化部署
使用Docker Compose快速部署:
version: '3'
services:
ds-master:
image: apache/dolphinscheduler:3.1.2
environment:
- DATABASE_HOST=db-master
- YARN_RM_HA_ENABLED=true
ports:
- "12345:12345"
yarn-rm1:
image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
environment:
- YARN_CONF_yarn_resourcemanager_ha_enabled=true
2. 混合云部署架构
- 本地单机+云上YARN:
- 本地部署DolphinScheduler Master/API
- 云上部署YARN集群(配置HA)
- 数据本地化优化:
# 优先使用本地YARN节点
yarn.nodemanager.localizer.address=localhost:8040
通过本文的详细部署指南,开发者可系统掌握DolphinScheduler单机模式与YARN HA的集成方法。实际部署中需特别注意:1)严格测试故障转移流程;2)建立完善的监控告警体系;3)定期进行备份恢复演练。建议参考Apache官方文档保持版本同步,对于生产环境可考虑逐步向集群模式过渡以获得更高可用性。
发表评论
登录后可评论,请前往 登录 或 注册