任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载本篇技术指南围绕 Apache DolphinScheduler 的官方升级文档docs/docs/en/guide/upgrade/upgrade.md展开完整讲解从升级前准备、数据库 Schema 升级、资源中心迁移、血缘数据迁移到服务启动的端到端流程并结合仓库中dolphinscheduler-tools模块的脚本与源码说明每一步背后的实现原理。读完本文你将掌握一套可复制的 DolphinScheduler 版本升级 SOP并理解升级脚本的工作机制与版本间的不兼容点。升级前准备Prepare升级不是简单的下载新包、替换旧包尤其是跨大版本升级如 3.0.x → 3.2.0必须先完成以下三项准备工作。检查不兼容变更Check Incompatible Change官方在升级前强烈建议先阅读不兼容变更清单incompatible.md。该文档按版本记录了可能破坏现有功能的变更例如dev 分支MySQL 驱动从 8.0.16 升级到 8.0.33环境变量PYTHON_HOME改为PYTHON_LAUNCHER、DATAX_HOME改为DATAX_LAUNCHERSQL 任务插件中 SQL 参数的正则匹配规则调整默认 Unix Shell 执行器从sh改为bashcommon.properties中的data-quality.jar.name更名为data-quality.jar.dir并改为表示目录等。3.2.0新资源中心的公共接口移除了description参数/datasources/tables与/datasources/tableColumnsAPI 新增必填字段database。3.3.0从资源中心移除udf-manage功能从任务插件中移除Pigeon。这些变更可能涉及环境变量名、配置项、API 参数甚至已删除的功能升级前逐条核对可避免升级后任务无法运行或接口报错。备份旧版本文件与数据库Backup为避免误操作导致数据丢失官方建议在升级前按你的部署环境对数据做好备份至少包括当前运行版本的配置文件如bin/env/install_env.sh、bin/env/dolphinscheduler_env.sh、common.properties等元数据库DolphinScheduler 的dolphinscheduler库它是工作流定义、调度信息、租户、告警等全部元数据的载体资源存储目录本地文件系统或 S3/OSS/HDFS 等对象存储中的资源文件。备份方式没有统一模板取决于你的环境MySQL 可用mysqldumpPostgreSQL 可用pg_dump但先备份、后升级是必须遵守的铁律。下载最新安装包Download从 DolphinScheduler 官网下载最新的二进制发行包并将其放到与当前服务运行目录不同的新目录中。后续所有升级命令都默认在这个新目录下执行这样既能保留旧版本目录作为回退方案也避免新旧文件混杂。升级步骤总览Upgrade升级整体分为五步顺序固定、不可颠倒停止所有 DolphinScheduler 服务升级数据库Schema 升级迁移资源资源中心重构后的一次性迁移迁移血缘数据修改配置并启动新版本服务。第一步停止所有 DolphinScheduler 服务根据你的部署方式停止全部服务。如果此前按照集群部署文档部署可执行sh ./script/stop-all.sh伪集群部署Pseudo-Cluster同理。停止服务的目的是确保升级期间没有服务写入数据库和资源存储避免 Schema 变更或数据迁移过程中出现并发写入冲突。第二步升级数据库Upgrade Database数据库升级是核心环节它负责把旧版本的元数据库结构升级到新版本。步骤如下1. 准备数据库驱动以 MySQL 为例其他数据库同理只需替换为对应驱动手动下载mysql-connector-java驱动 jar 包放入新安装包的./tools/libs目录。2. 导出数据库连接环境变量将{user}和{password}替换为你的数据库用户名与密码export DATABASE${DATABASE:-mysql} export SPRING_PROFILES_ACTIVE${DATABASE} export SPRING_DATASOURCE_URLjdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicodetruecharacterEncodingUTF-8useSSLfalse export SPRING_DATASOURCE_USERNAME{user} export SPRING_DATASOURCE_PASSWORD{password}这里DATABASE决定激活哪套数据源配置取值如mysql、postgresql、h2等SPRING_DATASOURCE_URL需按实际地址、端口和库名修改。3. 执行升级脚本sh ./tools/bin/upgrade-schema.sh源码视角该脚本在仓库中的原始位置是 dolphinscheduler-tools/src/main/bin/upgrade-schema.sh被打包后位于安装包的tools/bin/目录。从脚本源码可以看到其工作机制通过DOLPHINSCHEDULER_HOME默认取脚本上级两级目录定位安装根目录并加载bin/env/dolphinscheduler_env.sh获取JAVA_HOME等环境默认JAVA_OPTS为-server -Xms1g -Xmx1g并开启了 GC 日志与 OOM HeapDump将tools/conf、tools/libs/*、tools/sql加入 classpath以-Dspring.profiles.activeupgrade,${DATABASE}启动主类org.apache.dolphinscheduler.tools.datasource.UpgradeDolphinScheduler。而入口类 UpgradeDolphinScheduler.java 中的UpgradeRunner会判断如果schemaIsInitialized()为真则执行upgradeDolphinScheduler()否则执行initDolphinScheduler()——也就是说同一个脚本同时承担了初始化与升级两种职责脚本会自动识别库状态。升级逻辑由 DolphinSchedulerManager 调度并存在按版本分层的升级器如v130、v132、v200、v320等 upgrader从源码结构可以看出系统是按目标版本逐步执行升级 SQL 的。第三步迁移资源Migrate Resource在 3.2.0 版本重构资源中心后旧版本的资源变为**未托管unmanaged**状态。需要指定一个目标租户执行一次性迁移脚本所有资源将被迁移到该租户的.migrate目录下。脚本入口是 dolphinscheduler-tools/src/main/bin/migrate-resource.sh打包后位于tools/bin/sh ./tools/bin/migrate-resource.sh abc示例说明假设目标租户abc已存在其基础资源路径为/dolphinscheduler/abc/执行后原文件资源a/b.sh迁移到/dolphinscheduler/abc/resources/.migrate/a/b.sh原 UDF 资源x/y.jar迁移到/dolphinscheduler/abc/udf/.migrate/x/y.jar同时更新 UDF 函数所绑定的资源信息。源码视角脚本以-Dspring.profiles.activeresource,${DATABASE}启动主类org.apache.dolphinscheduler.tools.resource.MigrateResource。入口类 MigrateResource.java 中的MigrateResourceRunner会把命令行第一个参数作为目标租户编码String targetTenantCode args[0]; logger.info(Moving all unmanaged resources to tenant: {}, targetTenantCode); migrateResourceService.migrateResourceOnce(targetTenantCode);即migrate-resource.sh abc中的abc正是args[0]随后交由 MigrateResourceService 完成文件搬迁与 UDF 绑定关系的更新。注意该迁移是一次性的执行前请确认目标租户已存在且迁移对象是你确认无需再手动整理的旧资源。第四步升级血缘数据Upgrade Lineage执行sh ./tools/bin/migrate-lineage.sh执行结果将血缘数据迁移到新表t_ds_process_task_lineage该脚本只执行 upsert插入或更新操作不会删除数据如果你需要清理旧数据可以手动删除。源码视角脚本 dolphinscheduler-tools/src/main/bin/migrate-lineage.sh 以-Dspring.profiles.activelineage,${DATABASE}启动org.apache.dolphinscheduler.tools.lineage.MigrateLineage。入口类 MigrateLineage.java 的MigrateLineageRunner调用migrateLineageService.migrateLineageOnce()完成迁移。值得一提的是该脚本默认 JVM 堆为-Xms4g -Xmx4g比前两个脚本默认 1g大得多——从这一细节可以看出血缘数据迁移涉及的数据量通常较大脚本为海量数据处理预留了更大的堆空间。第五步升级服务Upgrade Service数据库、资源、血缘都迁移完成后开始启动新版本服务。1. 修改配置bin/env/install_env.sh若为伪集群部署按伪集群部署文档中的修改配置一节调整若为集群部署按集群部署文档中的修改配置一节调整。这一步需要把install_env.sh中的部署机器列表如ips、masters、workers等更新为你当前环境的实际机器与角色规划重点是对齐旧版本中的 worker 分组配置详见下文注意事项。2. 启动所有服务sh ./bin/start-all.sh启动后可通过 UI 与任务日志验证升级结果确认工作流定义、调度、租户、告警等元数据完整资源文件可正常访问血缘页面能查询到迁移后的数据。注意事项Worker Group 的版本差异NoticeWorker Group 的架构在 1.3.1 之前、1.3.12.0.0 之间以及 2.0.0 之后有显著差异升级时需要特别处理否则会导致 worker 分组错乱。1.3.1 及之前Worker Group 可以通过 UI 界面直接创建1.3.1 之后至 2.0.0 之前Worker Group 只能通过修改 worker 配置来创建2.0.0 及之后恢复为通过 Web UI 创建 Worker Group 的功能。从 1.3.1 升级到 2.0.0 之前的版本怎么办1. 查询备份数据库在备份数据库中查询t_ds_worker_group表重点关注三列id、name和IPidnameip_list1service1192.168.xx.102service2192.168.xx.11,192.168.xx.122. 修改bin/env/install_env.sh中的 worker 配置假设要部署的 worker 机器如下hostnameipds1192.168.xx.10ds2192.168.xx.11ds3192.168.xx.12为了让 worker 分组与旧版本保持一致需要把workers配置修改为格式为机器名:分组名同一分组可写多个机器# worker 服务部署在哪些机器上同时指定该 worker 属于哪个 worker group workersds1:service1,ds2:service2,ds3:service2Worker Group 在 1.3.2 中的增强1.3.1 中一个 worker 只能属于一个 worker group而 1.3.2 之后至 2.0.0 之前一个 worker 可以属于多个 worker group例如workersds1:service1,ds1:service2表示ds1这台机器同时归属于service1和service2两个分组。2.0.0 之后恢复 UI 创建2.0.0 及之后版本恢复了在 Web UI 中创建 Worker Group 的功能升级到这些版本后即可回到界面化管理方式。结语DolphinScheduler 的升级流程本质上是一个停服 → 库结构升级 → 数据迁移 → 配置对齐 → 启动验证的完整闭环。其中数据库升级由upgrade-schema.sh依据库状态自动区分初始化与升级资源迁移通过migrate-resource.sh将旧资源收编到指定租户的.migrate目录血缘迁移通过migrate-lineage.sh以只增不删的 upsert 方式导入新表。升级前务必对照不兼容变更清单逐条核查并结合 tools 模块源码理解每个脚本的实际行为才能保证生产环境平稳、无痛地完成版本跃迁。赞分享任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载相关推荐Apache DolphinScheduler 升级指南从准备工作到资源、血缘与数据库迁移的全流程实战Apache DolphinScheduler 升级指南从准备工作到资源、血缘与数据库迁移的全流程实战 本指南以 Apache DolphinSchedule任务调度数据编排工作流自动化后端大数据Apache DolphinScheduler 运维工具全解析Schema 初始化与升级、血缘迁移、资源迁移Apache DolphinScheduler 运维工具全解析Schema 初始化与升级、血缘迁移、资源迁移 导读 Apache DolphinSchedul任务调度数据编排工作流自动化后端大数据认知负荷降低指南8个让任意代码库一读就懂的做法认知负荷降低指南8个让任意代码库一读就懂的做法 如果你曾盯着 10 层依赖库的调用栈或 4 级继承链感到大脑卡壳问题不在你的智力而在 认知负荷任务调度大数据后端前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考