DolphinScheduler 3.2 分布式调度:开源大数据任务(多租户 / 权限控制)管理平台搭建
·
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 为例:
- 创建数据库和用户:
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; - 导入初始 SQL 脚本:
mysql -u ds_user -p dolphinscheduler < script/sql/dolphinscheduler_mysql.sql
步骤 2: 配置分布式环境
分布式部署需要多个节点:至少 1 个 Master Server、1 个 Worker Server 和 1 个 API Server。编辑配置文件(所有节点需相同配置):
- 修改
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 - 配置多租户:
- 在
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)。
- 多租户设置:
- 登录后,进入“安全中心” > “租户管理”。
- 创建租户(如
tenant_A、tenant_B),每个租户隔离资源和任务。 - 分配租户到用户:在“用户管理”中,编辑用户并指定租户。
- 权限控制:
- 基于角色:进入“安全中心” > “角色管理”,创建角色(如
developer、admin)。 - 分配权限:为角色授权(如项目访问、任务创建/执行)。
- 例如:
developer角色只能访问指定租户的项目。
- 例如:
- 绑定用户:将用户分配到角色,实现细粒度控制。
- 测试权限:用不同用户登录,验证隔离效果(如
tenant_A用户无法访问tenant_B的任务)。
- 基于角色:进入“安全中心” > “角色管理”,创建角色(如
步骤 5: 验证和测试
- 创建测试任务:
- 在 Web UI 中,新建项目 > 创建工作流(如一个简单的 Shell 任务)。
- 确保任务在指定租户下运行。
- 检查分布式执行:
- 查看 Worker 日志(
logs/worker-server.log),确认任务分发。 - 使用 API 测试权限:调用 REST API(如
curl -u user:password http://api-server:12345/dolphinscheduler/projects),验证权限控制。
- 查看 Worker 日志(
注意事项
- 性能优化:对于高负载环境,增加 Worker 节点数量;监控资源使用(如通过 Prometheus + Grafana)。
- 安全建议:启用 HTTPS、定期备份数据库、限制 API 访问 IP。
- 升级与维护:参考官方文档升级到新版本;社区支持活跃(GitHub 或邮件列表)。
- 常见问题:
- 如果 ZooKeeper 连接失败,检查网络和配置。
- 权限不生效时,确认角色绑定和租户设置。
- 日志路径:
logs/目录下查看详细错误。
通过以上步骤,您可以在 30 分钟内完成 DolphinScheduler 3.2 的分布式搭建。更多细节参考 Apache DolphinScheduler 官方文档。如有具体问题,请提供更多细节!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)