DolphinScheduler 3.2 分布式调度平台搭建指南

Apache DolphinScheduler 是一个开源的分布式大数据任务调度系统,支持多租户隔离和细粒度权限控制。版本 3.2 优化了性能和稳定性,适用于企业级大数据工作流管理。以下是一个结构化的搭建步骤,基于官方文档和最佳实践,确保真实可靠。整个过程以分布式部署为例,涵盖多租户和权限控制配置。

准备工作

在开始前,确保您的环境满足以下要求:

  • 系统要求:Linux 系统(如 CentOS 7+ 或 Ubuntu 18.04+),至少 4 核 CPU、8GB 内存、100GB 存储。
  • 依赖软件
    • Java JDK 1.8+(推荐 OpenJDK 11)。
    • MySQL 5.7+ 或 PostgreSQL,用于存储元数据。
    • ZooKeeper 3.4+,用于分布式协调。
    • 可选:Hadoop 或 Spark,用于大数据任务执行(如您有大数据环境)。
  • 网络要求:所有节点(Master、Worker、API Server)需互通,开放端口如 12345(Master)、5678(Worker)等。

下载 DolphinScheduler 3.2 安装包:

wget https://downloads.apache.org/dolphinscheduler/3.2.0/apache-dolphinscheduler-3.2.0-bin.tar.gz
tar -zxvf apache-dolphinscheduler-3.2.0-bin.tar.gz
cd apache-dolphinscheduler-3.2.0-bin

步骤 1: 配置数据库

DolphinScheduler 使用数据库存储元数据(如用户、任务、权限信息)。以 MySQL 为例:

  1. 创建数据库和用户:
    CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE USER 'ds_user'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'%';
    FLUSH PRIVILEGES;
    

  2. 导入初始 SQL 脚本:
    mysql -u ds_user -p dolphinscheduler < script/sql/dolphinscheduler_mysql.sql
    

步骤 2: 配置分布式环境

分布式部署需要多个节点:至少 1 个 Master Server、1 个 Worker Server 和 1 个 API Server。编辑配置文件(所有节点需相同配置):

  1. 修改 conf/common.properties
    # ZooKeeper 地址
    zookeeper.quorum=zk-node1:2181,zk-node2:2181,zk-node3:2181
    # 数据库配置
    datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    datasource.url=jdbc:mysql://your-mysql-host:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
    datasource.username=ds_user
    datasource.password=your_password
    

  2. 配置多租户:
    • conf/common.properties 中启用租户隔离:
      # 启用多租户模式
      tenant.enable=true
      

    • 租户数据存储在数据库中,后续通过 Web UI 管理。
步骤 3: 启动服务

在各自的节点上启动组件:

  • Master Server(负责任务调度):
    bin/dolphinscheduler-daemon.sh start master-server
    

  • Worker Server(负责任务执行):
    bin/dolphinscheduler-daemon.sh start worker-server
    

  • API Server(提供 REST API 和 Web UI):
    bin/dolphinscheduler-daemon.sh start api-server
    

验证服务状态:

bin/dolphinscheduler-daemon.sh status all  # 检查所有组件运行情况

步骤 4: 配置多租户和权限控制

通过 Web UI 完成(默认访问 http://your-api-server-ip:12345/dolphinscheduler,用户 admin,密码 dolphinscheduler123)。

  1. 多租户设置
    • 登录后,进入“安全中心” > “租户管理”。
    • 创建租户(如 tenant_Atenant_B),每个租户隔离资源和任务。
    • 分配租户到用户:在“用户管理”中,编辑用户并指定租户。
  2. 权限控制
    • 基于角色:进入“安全中心” > “角色管理”,创建角色(如 developeradmin)。
    • 分配权限:为角色授权(如项目访问、任务创建/执行)。
      • 例如:developer 角色只能访问指定租户的项目。
    • 绑定用户:将用户分配到角色,实现细粒度控制。
    • 测试权限:用不同用户登录,验证隔离效果(如 tenant_A 用户无法访问 tenant_B 的任务)。
步骤 5: 验证和测试
  1. 创建测试任务:
    • 在 Web UI 中,新建项目 > 创建工作流(如一个简单的 Shell 任务)。
    • 确保任务在指定租户下运行。
  2. 检查分布式执行:
    • 查看 Worker 日志(logs/worker-server.log),确认任务分发。
    • 使用 API 测试权限:调用 REST API(如 curl -u user:password http://api-server:12345/dolphinscheduler/projects),验证权限控制。
注意事项
  • 性能优化:对于高负载环境,增加 Worker 节点数量;监控资源使用(如通过 Prometheus + Grafana)。
  • 安全建议:启用 HTTPS、定期备份数据库、限制 API 访问 IP。
  • 升级与维护:参考官方文档升级到新版本;社区支持活跃(GitHub 或邮件列表)。
  • 常见问题
    • 如果 ZooKeeper 连接失败,检查网络和配置。
    • 权限不生效时,确认角色绑定和租户设置。
    • 日志路径:logs/ 目录下查看详细错误。

通过以上步骤,您可以在 30 分钟内完成 DolphinScheduler 3.2 的分布式搭建。更多细节参考 Apache DolphinScheduler 官方文档。如有具体问题,请提供更多细节!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐