DolphinScheduler
# 基于 Ambari 安装 DolphinScheduler 高可用服务
在本篇文章中,我们将带领大家通过 Ambari + Bigtop 3.2.0 来安装并配置 DolphinScheduler 高可用集群服务 。DolphinScheduler 是一个现代化的数据工作流调度平台,支持复杂依赖的作业编排、多租户管理和可视化界面操作,适用于各种大数据任务管理场景。
通过 Ambari 安装 DolphinScheduler,不仅可以统一管理服务分配与配置,还能借助其友好的操作界面实现快速部署和后期维护。本文特别面向 生产环境部署,将演示如何实现 Master、Worker、API、Alert 全组件的多节点部署架构,确保任务调度服务的 高可用 和 可扩展性。
# 1. 进入 Ambari 添加 DolphinScheduler 服务
我们仍然从 Ambari 管理页面开始,左侧菜单点击 三个点,选择 Add Service
。 是我们添加任意新服务的入口。
# 2. 勾选 DolphinScheduler 组件
在服务选择界面中,找到 DolphinScheduler
组件并打勾,点击右下角 Next 继续。
注意
当前版本支持 3.2.2,你可以在服务右侧看到维护人信息和 Gitee 链接。
# 3. Master、Worker、API 和 Alert 全部多节点部署
进入分配组件阶段,我们建议:
提示
Master、Worker、API、Alert 全部使用多节点部署,提高容错性,避免单点风险。
我们为每台节点都勾选了这些组件:
# 4. 数据库准备与配置(MySQL 为例)
笔记
DolphinScheduler 支持 MySQL 和 PostgreSQL,本文以 MySQL 为例。
请先准备好数据库并授权:
-- Step 1: 创建数据库(如果不存在)
CREATE DATABASE IF NOT EXISTS dolphinscheduler CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Step 2: 创建用户(如果不存在)
CREATE USER IF NOT EXISTS 'dolphin'@'%' IDENTIFIED BY 'dolphinPwd';
-- Step 3: 授权用户权限
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphin'@'%';
-- Step 4: 刷新权限
FLUSH PRIVILEGES;
2
3
4
5
6
7
8
9
10
11
12
13
如下图所示,数据库 dolphinscheduler
成功创建:
填写对应的配置信息,注意地址、端口、账号密码要和上面一致:
# 5. 复盘配置并点击 Deploy 部署
部署前复盘所有配置项,确认每个节点组件都正常分配,点击 Deploy 进行安装。
提示
由于是多节点部署,安装时间比单节点略长,耐心等待系统完成任务。
# 6. 多 Master 首次启动可能报错
如果你是首次部署,并启用了多个 Master 节点,那么很可能遇到以下错误日志:
ERROR 16989 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:774) [spring-boot-2.7.3.jar:2.7.3]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:755) [spring-boot-2.7.3.jar:2.7.3]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.7.3.jar:2.7.3]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.3.jar:2.7.3]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.3.jar:2.7.3]
at org.apache.dolphinscheduler.tools.datasource.UpgradeDolphinScheduler.main(UpgradeDolphinScheduler.java:36) [dolphinscheduler-tools-3.2.2.jar:3.2.2]
Caused by: java.lang.RuntimeException: Execute initialize sql file: sql/dolphinscheduler_mysql.sql error
at org.apache.dolphinscheduler.tools.datasource.upgrader.UpgradeDao.initSchema(UpgradeDao.java:67) ~[dolphinscheduler-tools-3.2.2.jar:3.2.2]
at org.apache.dolphinscheduler.tools.datasource.DolphinSchedulerManager.initDolphinSchedulerSchema(DolphinSchedulerManager.java:80) ~[dolphinscheduler-tools-3.2.2.jar:3.2.2]
at org.apache.dolphinscheduler.tools.datasource.DolphinSchedulerManager.initDolphinScheduler(DolphinSchedulerManager.java:60) ~[dolphinscheduler-tools-3.2.2.jar:3.2.2]
at org.apache.dolphinscheduler.tools.datasource.UpgradeDolphinScheduler$UpgradeRunner.run(UpgradeDolphinScheduler.java:56) ~[dolphinscheduler-tools-3.2.2.jar:3.2.2]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:771) [spring-boot-2.7.3.jar:2.7.3]
... 5 common frames omitted
Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:763) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:648) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) ~[HikariCP-4.0.3.jar:na]
at org.apache.dolphinscheduler.common.sql.SqlScriptRunner.execute(SqlScriptRunner.java:58) ~[dolphinscheduler-common-3.2.2.jar:3.2.2]
at org.apache.dolphinscheduler.tools.datasource.upgrader.UpgradeDao.initSchema(UpgradeDao.java:64) ~[dolphinscheduler-tools-3.2.2.jar:3.2.2]
... 9 common frames omitted
2025-04-08 10:08:19.395 INFO 16989 --- [ main] com.zaxxer.hikari.HikariDataSource : DolphinScheduler - Shutdown initiated...
2025-04-08 10:08:19.412 INFO 16989 --- [ main] com.zaxxer.hikari.HikariDataSource : DolphinScheduler - Shutdown completed.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
报错不影响部署
这种错误只会在 第一次启动时出现,如果你已经手动执行过初始化 SQL,那么这个错误可以直接忽略。
我们只需要去 Ambari 的 DolphinScheduler 服务页面,点击 重启服务 即可恢复。
# 7. 登录 DolphinScheduler 控制台
服务部署成功后,我们可以直接访问 DolphinScheduler 提供的 Web 控制台:
默认地址
http://hadoop1:12345/dolphinscheduler/ui/login
默认登录账号密码如下:
用户名 | 密码 |
---|---|
admin | dolphinscheduler123 |
# 8. 后台监控中心:Master / Worker / Alert 可视化
成功登录后,我们可以在监控中心中查看各组件运行状态和资源占用情况:
- CPU 利用率
- 内存使用率
- 磁盘空间
- 进程在线状态
以 Master 管理为例,界面如下所示:
你也可以点击左侧菜单切换到 Worker
、Alert Server
、DB
等组件,查看其各自资源信息。