
DolphinScheduler 数据源配置避坑指南【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinschedulerApache DolphinScheduler 是分布式可视化的工作流调度系统数据源配置是新手上手时第一个踩坑重灾区默认 H2 重启就丢数据、JDBC 驱动放错目录就报缺类、元数据库和数据源中心又很容易搞混。这篇文章把这两层数据源配置一次讲透元数据库怎么初始化、驱动放哪、数据源中心怎么建连接全程给到可以直接照抄的步骤读完你就能把环境从默认配置切到生产可用。数据源配置到底在配什么先分清两层概念这一节解决最基础的困惑为什么安装时要配一个数据库界面里又让你建数据源DolphinScheduler 的数据源配置其实分两层元数据库系统自身数据的存放地——工作流定义、任务实例、用户与权限都在里面。Standalone 模式默认用内存的H2生产部署要换成 MySQL 或 PostgreSQL数据源中心界面里管理的业务数据库供 SQL 等任务类型读写数据支持 MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER 等二十多种类型。两层完全独立元数据库是系统的户口本数据源中心是你任务对接的外部仓库。本文的顺序就是先把元数据库搞对最后再回来建数据源中心的连接。官方数据源配置文档覆盖了下文所有步骤遇到细节不一致时以它为准。数据源中心建出来的数据源存在t_ds_datasource表里它和用户t_ds_user、租户t_ds_tenant之间的授权关系也在这张图里——这也解释了为什么数据源要先创建、授权才能在任务里被选用。H2 能撑多久什么时候该切到 MySQL 或 PostgreSQL这一节给出选型标准什么场景下可以照用默认 H2什么场景下必须换 MySQL 或 PostgreSQL。体验、验证想法Standalone 默认 H2 就够了零数据库部署一条命令起服务工作流上量、需要数据持久化把元数据库切成 MySQL 或 PostgreSQL生产集群分布式部署必须用 MySQL 或 PostgreSQL没有讨论空间。为什么 H2 不建议长期用官方文档说得很直接Standalone 仅建议 20 个以下工作流使用且它采用内存式 H2重启或停止服务就会清空全部数据。⚠️ 如果你把 H2 里的数据当生产数据用了重启后一片空白不用惊讶这就是 H2 的工作方式。想让数据活过重启唯一的路是把元数据库切到外部数据库。Standalone 的适用范围与限制细节见Standalone 安装文档。所以路线很清楚先用 H2 体验要持久化就按下一节把 Standalone 切到 MySQL要上生产就按再下一节的分布式流程初始化数据库。5 分钟把 Standalone 元数据库切到 MySQL这一节是最小可用路径三步完成从 H2 到 MySQL 的切换切换后数据重启不丢。第一步下载驱动并放对位置元数据库要用 MySQL需要手动下载mysql-connector-java 8.0.16驱动放到standalone-server/libs/standalone-server/目录。发行包里没有带 MySQL 驱动许可不兼容这一步省不了否则启动后连不上 MySQL。第二步设置环境变量在命令行设置下面五个环境变量把{address}、{user}、{password}替换成你的真实数据库地址、用户名和密码export DATABASEmysql export SPRING_PROFILES_ACTIVE${DATABASE} export SPRING_DATASOURCE_URLjdbc:mysql://{address}/dolphinscheduler?useUnicodetruecharacterEncodingUTF-8useSSLfalse export SPRING_DATASOURCE_USERNAME{user} export SPRING_DATASOURCE_PASSWORD{password}用 PostgreSQL 的话只需把DATABASE改成postgresql、URL 换成jdbc:postgresql://{address}:5432/dolphinscheduler其余变量不变。第三步重启生效并验证重启 standalone-server此时工作流定义、任务记录等数据都会落到 MySQL重启或停止服务都不会再清空数据。验证也很简单登录 MySQL 看dolphinscheduler库里是否有一批t_ds_前缀的表有就说明切换成功。如果启动后报连接失败按顺序查三件事驱动目录对不对、账号密码对不对、端口通不通。分布式部署元数据库初始化的完整流程这一节是生产级路径建库、配连接、初始化表结构三步拿到一个干净的元数据库。建库和专用账号以 MySQL 5.6/5.7 为例登录 mysql 客户端执行CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO {user}% IDENTIFIED BY {password}; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO {user}localhost IDENTIFIED BY {password}; FLUSH PRIVILEGES;{user}和{password}换成实际要用的账号建议给 DolphinScheduler 建专用账号而不是直接给 root。版本和数据库之间的差异只有几处MySQL 8.0GRANT不再支持IDENTIFIED BY要先CREATE USER {user}% IDENTIFIED BY {password}再单独执行GRANTlocalhost 同理PostgreSQL建库不用指定字符集建完用户后还要ALTER DATABASE dolphinscheduler OWNER TO {user};并向$PGDATA/pg_hba.conf追加一行访问权限格式为host dolphinscheduler {user} {ip} md5{ip}替换为 DS 集群服务器的地址段最后pg_ctl reload让配置生效。配置连接环境变量还是上一节那五个环境变量把地址换成真实地址即可用 PostgreSQL 时把DATABASE改成postgresql、URL 换成jdbc:postgresql://127.0.0.1:5432/dolphinscheduler。⚠️ MySQL URL 里有个时区坑别用CST这类模糊时区标识符调度触发时间可能整体偏移。建议显式加serverTimezoneAsia/Shanghai。初始化表结构跑一条官方脚本它会自动创建全部元数据表这个脚本以后升级表结构还要用别丢bash tools/bin/upgrade-schema.sh到这里元数据库就绪按分布式安装的步骤拉起各服务即可。JDBC 驱动放错目录会出什么问题这一节是社区反馈里最频繁的坑服务启动报缺类、数据源测试连接直接报错根源几乎都是驱动没放对地方。先说清楚为什么官方包不带这些驱动MySQL、Oracle、SQL Server 这类数据源的 JDBC 驱动与Apache LICENSE V2 不兼容所以发行包无法内置必须自己下载对应版本的 jar。关键是两个场景、两套目录搞混了白忙元数据库用 MySQL驱动要放进api-server/libs、alert-server/libs、master-server/libs、worker-server/libs、tools/libs五个目录漏放哪个对应服务就连不上元数据库数据源中心用 MySQL/Oracle/SQL Server放进api-server/libs和worker-server/libs然后重启api-server、worker-server生效容器部署也一样把驱动挂载到这两个路径再重启。⚠️ 版本有讲究把 MySQL 当元数据库时驱动只支持8.0.16 及以上版本只是数据源中心里用则对驱动版本没有要求。排查思路永远是那一条确认 jar 在正确的libs目录、确认版本符合要求、重启对应服务然后在启动日志里找驱动加载信息。数据源中心3 步从建连接到测试通过最后一节让数据源在界面里真正可用建好之后SQL 任务里直接就能选。第一步选择数据源类型进入数据源中心点创建数据源在下拉框里选类型。最常用的就是 MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER 这几类。第二步填写连接信息以 MySQL 为例必填项是IP、Port、User Name、Password、Database Name还有额外的连接参数就写在jdbc connect parameters里按 key-value 格式填写。第三步测试连接后保存点测试连接——只有测试通过后才能保存数据源这是系统的硬规则。测试不过时按顺序查驱动是否按上一节放置了MySQL/Oracle/SQL Server 等类型必须IP、端口是否可达账号权限是否足够jdbc connect parameters的 JSON 格式是否写对。各类型数据源的完整配置项参考官方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),仅供参考