logo

DolphinScheduler单机模式与YARN HA集成部署指南

作者:半吊子全栈工匠2025.09.17 11:04浏览量:0

简介:本文深入解析DolphinScheduler单机部署模式,结合YARN HA高可用架构,提供从环境准备到故障恢复的完整部署方案,助力企业构建稳定可靠的工作流调度系统。

一、DolphinScheduler单机部署核心价值

DolphinScheduler作为开源工作流调度引擎,单机部署模式以其轻量化、易维护的特性,成为中小规模团队或测试环境的首选方案。其核心优势体现在:

  1. 资源占用优化:单机模式仅需单节点运行,降低硬件成本,适合资源有限场景。
  2. 快速部署验证:无需复杂集群配置,支持快速功能验证与开发测试。
  3. 简化运维复杂度:单节点架构减少了网络通信与同步开销,故障排查更直接。

但单机模式存在单点故障风险,需通过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配置关键步骤

  1. 修改core-site.xml
    1. <property>
    2. <name>hadoop.ha.zookeeper.quorum</name>
    3. <value>zk1:2181,zk2:2181,zk3:2181</value>
    4. </property>
  2. 配置hdfs-site.xml
    1. <property>
    2. <name>dfs.nameservices</name>
    3. <value>mycluster</value>
    4. </property>
    5. <property>
    6. <name>dfs.ha.namenodes.mycluster</name>
    7. <value>nn1,nn2</value>
    8. </property>
  3. 启用YARN HA
    yarn-site.xml中添加:
    1. <property>
    2. <name>yarn.resourcemanager.ha.enabled</name>
    3. <value>true</value>
    4. </property>
    5. <property>
    6. <name>yarn.resourcemanager.cluster-id</name>
    7. <value>yarn-cluster</value>
    8. </property>

三、DolphinScheduler单机部署流程

1. 下载与解压

  1. wget https://dist.apache.org/repos/dist/release/dolphinscheduler/3.1.2/apache-dolphinscheduler-3.1.2-bin.tar.gz
  2. tar -xzf apache-dolphinscheduler-3.1.2-bin.tar.gz -C /opt/

2. 数据库初始化

  1. 创建DolphinScheduler专用数据库:
    1. CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. 执行SQL脚本(位于/opt/dolphinscheduler/sql/目录)

3. 配置文件修改

编辑/opt/dolphinscheduler/conf/common.properties

  1. # 数据库配置
  2. spring.datasource.url=jdbc:postgresql://db-master:5432/dolphinscheduler
  3. spring.datasource.username=ds_user
  4. spring.datasource.password=your_password
  5. # YARN HA配置
  6. yarn.application.status.address=http://rm1:8088,http://rm2:8088
  7. yarn.resourcemanager.ha.rm.ids=rm1,rm2

4. 启动服务

  1. # 初始化元数据
  2. sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start meta-init
  3. # 启动API服务
  4. sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server
  5. # 启动Master服务(单机模式仅需启动一个)
  6. sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server
  7. # 启动Worker服务
  8. sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server

四、YARN HA集成深度解析

1. 资源调度机制

DolphinScheduler通过YARN Client提交任务时,YARN HA确保:

  • 自动故障转移:当主RM宕机时,ZooKeeper协调备RM接管
  • 资源请求重试:任务提交失败时自动重试备RM节点
  • 状态一致性:通过共享编辑日志维持集群状态同步

2. 配置验证方法

  1. 检查RM状态
    1. yarn rmadmin -getServiceState rm1
    2. yarn rmadmin -getServiceState rm2
  2. 模拟故障测试
    1. # 停止主RM
    2. systemctl stop hadoop-yarn-resourcemanager
    3. # 观察备RM是否自动升级为主RM

五、高可用部署最佳实践

1. 监控告警配置

  1. Prometheus集成
    1. # prometheus.yml配置示例
    2. scrape_configs:
    3. - job_name: 'dolphinscheduler'
    4. static_configs:
    5. - targets: ['ds-master:12345']
  2. 关键指标监控
    • dolphinscheduler_task_queue_size:任务积压量
    • yarn_application_running_count:YARN运行任务数
    • dolphinscheduler_worker_heartbeat:Worker存活状态

2. 备份恢复策略

  1. 数据库备份
    1. # 每日全量备份
    2. pg_dump -U ds_user -h db-master dolphinscheduler > ds_backup_$(date +%Y%m%d).sql
  2. 配置文件版本控制
    使用Git管理/opt/dolphinscheduler/conf/目录,确保配置可追溯。

3. 性能调优建议

  1. Worker内存配置
    worker.properties中调整:
    1. worker.exec.threads=100
    2. worker.memory.limit=8G
  2. YARN队列分配
    capacity-scheduler.xml中为DolphinScheduler分配专用队列:
    1. <queue name="ds-queue">
    2. <capacity>30%</capacity>
    3. <max-capacity>50%</max-capacity>
    4. </queue>

六、常见问题解决方案

1. YARN连接失败排查

  1. 检查网络连通性
    1. telnet rm1 8088
    2. telnet rm2 8088
  2. 验证认证配置
    确保common.propertiesyarn.principalyarn.keytab配置正确。

2. 任务积压处理

  1. 动态扩容Worker
    1. # 临时增加Worker节点
    2. sh /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server
  2. 调整任务优先级
    通过API修改任务优先级:
    1. curl -X PUT "http://ds-api:12345/dolphinscheduler/projects/{projectId}/executions/{executionId}" \
    2. -H "Content-Type: application/json" \
    3. -d '{"priority": 5}'

七、进阶部署方案

1. 容器化部署

使用Docker Compose快速部署:

  1. version: '3'
  2. services:
  3. ds-master:
  4. image: apache/dolphinscheduler:3.1.2
  5. environment:
  6. - DATABASE_HOST=db-master
  7. - YARN_RM_HA_ENABLED=true
  8. ports:
  9. - "12345:12345"
  10. yarn-rm1:
  11. image: bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8
  12. environment:
  13. - YARN_CONF_yarn_resourcemanager_ha_enabled=true

2. 混合云部署架构

  1. 本地单机+云上YARN
    • 本地部署DolphinScheduler Master/API
    • 云上部署YARN集群(配置HA)
  2. 数据本地化优化
    1. # 优先使用本地YARN节点
    2. yarn.nodemanager.localizer.address=localhost:8040

通过本文的详细部署指南,开发者可系统掌握DolphinScheduler单机模式与YARN HA的集成方法。实际部署中需特别注意:1)严格测试故障转移流程;2)建立完善的监控告警体系;3)定期进行备份恢复演练。建议参考Apache官方文档保持版本同步,对于生产环境可考虑逐步向集群模式过渡以获得更高可用性。

相关文章推荐

发表评论