news 2026/8/24 22:02:09

Apache DolphinScheduler 数据源配置完整指南:从元数据库到 JDBC 驱动一次讲清

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache DolphinScheduler 数据源配置完整指南:从元数据库到 JDBC 驱动一次讲清

Apache DolphinScheduler 数据源配置完整指南:从元数据库到 JDBC 驱动一次讲清

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

Apache DolphinScheduler 是一款分布式、可视化的工作流调度系统:你在页面上画出的工作流,会被拆解成真正跑在集群里的任务。它的数据源配置其实分两个完全不同的层面:先配"系统自己用的库"(元数据库),再配"业务任务要连的库"(数据源中心)。这两件事混着做,一定会踩坑。

先分清:元数据库与数据源中心干的不是同一件事

第一次接触的人最容易把这两者搞混。先说结论:元数据库是调度系统自己的账本——工作流定义、任务实例、用户权限都存在这里;数据源中心是你业务任务的连接簿——SQL 任务、数据同步任务要读写哪个库,在这里登记。

元数据库数据源中心
用途存工作流定义、任务实例、用户权限等系统元数据存业务库的连接信息,供任务运行时取用
谁来连只有调度系统自身SQL、数据同步等业务任务
配在哪环境变量 / 集群配置,服务启动前完成UI 的"数据源中心"菜单,服务启动后操作
典型类型MySQL、PostgreSQL、H2Hive、Spark、ClickHouse、Oracle、SQL Server 等

下面按你的实际动作分三个场景讲:单机先跑通、生产落地元数据库、最后在数据源中心接业务库。

场景 A:把 Standalone 从 H2 切到 MySQL,单机快速跑通

Standalone 是 DolphinScheduler 的单机部署形态——所有角色打在一个进程里,开箱即用,但默认元数据库是 H2(一个内嵌文件库,数据写在本机文件里)。你只是想"先跑起来看看",H2 没问题;但H2 只适合试用,不要带进生产

最小步骤三步走:

  1. 下载 mysql-connector-java 驱动(建议 8.0.16),放到standalone-server/libs/standalone-server/目录下。
  2. 导出下面 5 个环境变量(前 4 个告诉 Spring 用哪套 profile、连哪个库,最后一个是密码)。
export DATABASE=mysql export SPRING_PROFILES_ACTIVE=${DATABASE} export SPRING_DATASOURCE_URL="jdbc:mysql://{address}/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false" export SPRING_DATASOURCE_USERNAME={user} export SPRING_DATASOURCE_PASSWORD={password}

{address}替换为你的 MySQL 地址(如127.0.0.1:3306),{user}/{password}替换为数据库账号和密码;${DATABASE}直接复用上一行的mysql,不用改。

  1. 启动 standalone-server。此时工作流、用户等数据直接写进 MySQL,重启服务不再丢数据。

场景 B:为生产环境建库授权,初始化元数据库表结构

选型一句话:生产环境用 MySQL 或 PostgreSQL,不要用 H2。

不同数据库的建库授权差异,看这张表就够了(MySQL 两个版本的CREATE DATABASE语句完全相同,差异都在授权环节):

对比项MySQL 5.6/5.7MySQL 8.0+PostgreSQL
授权写法直接GRANT ... IDENTIFIED BY '{password}'一步到位CREATE USERGRANT,不再在 GRANT 里带密码CREATE USER {user} PASSWORD '{password}'+ALTER DATABASE ... OWNER TO
额外步骤pg_hba.conf追加一行host dolphinscheduler {user} {ip} md5,再执行pg_ctl reload生效

以 MySQL 8.0+ 为例,建库 + 授权的完整脚本如下(PostgreSQL 的等价写法是CREATE DATABASE dolphinscheduler;+ 建用户 + 改属主,再按上表处理pg_hba.conf):

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE USER '{user}'@'%' IDENTIFIED BY '{password}'; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'%'; CREATE USER '{user}'@'localhost' IDENTIFIED BY '{password}'; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO '{user}'@'localhost'; FLUSH PRIVILEGES;

{user}/{password}替换为你的专用账号和密码;%允许任意来源连接,内网环境可改成具体网段收紧。

库建好后,用环境变量告诉各服务角色去哪找这个库。MySQL 和 PostgreSQL 两套配置只有 URL 和 profile 名不同,对照填即可:

环境变量MySQLPostgreSQL
DATABASEmysqlpostgresql
SPRING_PROFILES_ACTIVE${DATABASE}${DATABASE}
SPRING_DATASOURCE_URLjdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=falsejdbc:postgresql://127.0.0.1:5432/dolphinscheduler
SPRING_DATASOURCE_USERNAME{user}{user}
SPRING_DATASOURCE_PASSWORD{password}{password}

最后一步,初始化(或升级)元数据表结构,只跑一次:

bash tools/bin/upgrade-schema.sh

执行后系统会自动把全部元数据表建出来,并对旧版本做结构升级。元数据库里会落下的核心表关系长这样:

场景 C:在数据源中心接入业务数据源的 5 步

支持的数据源类型一行列完:关系型(MySQL、PostgreSQL、Oracle、SQL Server)、大数据(Hive/Impala、Spark)、分析型(ClickHouse),更多类型见 UI 下拉列表。

操作压成 5 步,照做即可:

  1. 进入左侧菜单"数据源中心"。
  2. 点击"创建数据源"。
  3. 选择类型,填写主机、端口、账号、密码(类型不同表单略有差异,如 Spark 要填 JDBC URL 和主键分区列)。
  4. 点"测试连接",必须看到成功提示。
  5. 保存。此后任何任务引用这个数据源 ID 即可。

⚠️驱动坑,务必看:部分数据源的 JDBC 驱动(Java 读写数据库用的 jar 包,如 MySQL、Oracle、SQL Server)因与 Apache LICENSE V2 不兼容,没有随系统一起分发。你需要自行下载对应驱动 jar,放进api-server/libsworker-server/libs两个目录,然后重启这两个服务才生效——只放一处、或放完不重启,都会表现为"测试连接成功、任务跑的时候才报错"。另外,如果你用 MySQL 做元数据库,驱动版本必须 ≥ 8.0.16。

上线前自查:4 个维度逐条过

  • 生产选型:元数据库用的是 MySQL 或 PostgreSQL,生产环境没有残留 H2
  • 连接池与性能:连接池大小、超时按实际负载调过;定期对元数据库做索引维护、统计信息更新
  • 安全与备份:元数据库用专用最小权限账号;开启 SSL/TLS 连接加密;已纳入定期备份
  • 版本兼容:JDBC 驱动版本与当前系统版本核对过,并先在测试环境完整验证一轮

出问题先看这里:踩坑速查

现象先查什么常见原因
连接测试失败网络连通性 → 账号权限端口被防火墙拦、账号对目标库无权限、地址/库名写错
驱动加载异常驱动 jar 位置 → 服务启动日志jar 没放全(api-server / worker-server 两处都要)、文件不可读、元数据库用了低版本 MySQL 驱动
性能不达预期慢查询 → 连接池指标元数据库缺索引、连接池过小、大结果集任务压垮库

配完之后:用一个最小任务验证全链路

配置完成后,建议先用一个最小的数据同步任务(一条简单 SQL 任务即可)把"元数据库 → 调度 → 数据源中心 → 业务库"整条链路跑通,确认日志无异常,再逐步接入生产工作流。哪一步卡住,回上面"踩坑速查"表对号入座。

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 21:59:34

OpenArm:一副6500美元的7自由度开源协作机械臂是怎么做到的

OpenArm:一副6500美元的7自由度开源协作机械臂是怎么做到的 【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 项目地址: https://gitcode.com/GitHub_Trending/op/openarm …

作者头像 李华
网站建设 2026/8/24 21:59:19

DBeaver 崩溃后 5 分钟找回 SQL 脚本:完整指南

DBeaver 崩溃后 5 分钟找回 SQL 脚本:完整指南 【免费下载链接】dbeaver Free universal database tool and SQL client 项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver DBeaver 崩溃后,最怕的就是没保存的 SQL 脚本找不回来。这篇文…

作者头像 李华
网站建设 2026/8/24 21:53:54

「AI 应用 / AI Agent」行业日报 · 2026-08-23

「AI 应用 / AI Agent」行业日报 2026-08-23 📊 市场信号 阿里巴巴发布2027财年Q1财报,营收2690亿元,同期宣布新一轮业务架构调整:电商合并、云芯片整合、千问分拆为独立子公司 [数据来源:36氪《9点1氪》;…

作者头像 李华
网站建设 2026/8/24 21:51:09

Linux命令合集

ls查看当前目录下文件的相关信息cd .跳转当前目录cd ..跳转到上级目录pwd查看当前目录的绝对路径whoami可以查看当前登录的用户名su root可以切换到管理员which查找外部命令路径whereis查找命令的二进制、源码、手册页type显示命令类型(内置/外部/别名)c…

作者头像 李华
网站建设 2026/8/24 21:44:37

UMA:毫秒级预测能量与力,一个模型跑通材料与分子动力学

UMA:毫秒级预测能量与力,一个模型跑通材料与分子动力学 【免费下载链接】ocp FAIR Chemistrys library of machine learning methods for chemistry 项目地址: https://gitcode.com/GitHub_Trending/oc/ocp 给吸附在 Cu(100) 表面上的 CO 做结构…

作者头像 李华