Apache DolphinScheduler 3.4.2 版本发布:多方面显著提升,为企业工作流调度带来高效安全体验
近日,Apache DolphinScheduler 社区正式发布 3.4.2 版本。作为 3.4.x 系列的重要维护版本,3.4.2 延续了社区一贯的高质量迭代节奏。本次发布不仅带来了 Amazon EMR Serverless 任务插件、监控中心增强等用户可直接感知的新能力,同时还围绕补数据场景、任务插件能力、安全治理、权限控制以及底层架构进行了大规模优化和重构。
从 Release 周期来看,3.4.2 共合并超过百余个 Pull Request,涵盖功能增强、稳定性修复、代码治理、文档完善以及 CI/CD 优化等多个方向。来自全球社区的众多贡献者共同参与了本次版本建设,进一步推动 DolphinScheduler 向企业级云原生工作流编排平台持续演进。
Amazon EMR Serverless 正式加入 DolphinScheduler 生态
随着越来越多企业将数据平台部署在 AWS 云环境中,Serverless 架构正在成为大数据计算的重要发展方向。为满足这一需求,社区在本次版本中新增了 Amazon EMR Serverless Task Plugin(PR #18069,@norrishuang)。
通过该插件,用户可以直接在 DolphinScheduler 中提交和管理 Amazon EMR Serverless 作业,实现 Spark 等大数据任务的统一编排与调度,而无需自行维护底层计算集群。对于数据湖、离线数仓以及 AI 数据处理场景而言,这意味着更低的运维成本和更高的资源利用效率。这一能力的加入,也进一步完善了 DolphinScheduler 在 AWS 云原生生态中的覆盖范围。
监控中心能力增强,运行状态更加透明
在生产环境中,运维人员最关心的问题之一就是当前究竟有哪些工作流和任务正在运行。过去,很多情况下需要登录服务器查看日志或进程信息才能定位问题。为改善这一体验,社区在 PR #18138(@ruanwenjun)中对监控中心进行了增强。
升级后,用户可以直接在 UI Monitor 页面查看当前 Active Master 正在执行的工作流以及 Active Worker 正在执行的任务。整个集群的运行状态变得更加直观,故障排查效率也得到明显提升。对于大规模集群而言,这项改进进一步增强了系统的可观测性能力。
补数据能力进一步完善
补数据(Complement Data)一直是离线数仓和数据平台建设中的核心能力。在以往版本中,部分补数据场景下的依赖关系处理仍存在一定限制。围绕这一问题,社区完成了 DSIP - 95 的相关实现。
PR #18003 由 @det101 提交,实现了补数据场景下依赖任务能力的完善。升级后,系统能够在执行历史数据回补时正确识别和计算依赖关系,从而保证补数流程的准确性与完整性。对于 T + 1 数仓、历史数据重算以及离线指标修复等场景来说,这项改进具有重要意义。
SQL、Flink 等任务插件持续增强
任务插件始终是 DolphinScheduler 最活跃的演进方向之一。
在 SQL Task 方面,社区通过 PR #18020(@macdoor)新增了从资源文件读取 SQL 的能力,同时支持参数占位符替换。这一增强使得复杂 SQL 不再需要直接嵌入任务定义中,开发者可以将 SQL 文件统一存放于资源中心,实现更加规范的管理方式,也让 SQL 的版本维护和协作开发更加方便。
Flink 生态方面,PR #17987(@macdoor)为 Flink Task 和 FlinkStream Task 增加了参数替换能力。借助这一能力,用户可以在运行时动态生成任务参数,从而更灵活地适应不同环境和业务场景。对于需要处理多租户配置、动态日期计算或环境切换的企业用户而言,这项功能将显著提升任务编排效率。
与此同时,在 Flink 任务插件方面,社区还进一步提升了参数配置灵活性。PR #17909(@leocook)将 Flink 的 -sae 参数开放至 Web UI 配置界面,并将默认值设置为关闭状态。通过图形化配置方式,用户无需修改底层配置文件即可控制相关运行参数,进一步降低了 Flink 任务的使用门槛。
安全与权限治理持续加强
企业级调度平台对于安全治理有着极高要求。在本次版本中,社区完成了 DSIP - 37 的相关实现。PR #18119 由 @SbloodyS 提交,新增了通过配置禁用 Jetty HTTP TRACE 请求的能力。
TRACE 请求通常不会在业务场景中使用,但可能被用于信息探测。通过关闭该能力,可以进一步降低潜在安全风险,提升系统安全性。
数据源权限控制方面,PR #18073(@njnu - seafish)新增了针对 connectionTest、getDatabases、getTables 和 getTableColumns 等接口的权限校验机制。升级后,未授权用户将无法获取相关元数据信息,从而进一步强化数据访问安全边界。
持续优化与重构
如果说新功能是用户最容易感知的变化,那么底层代码实现规范统一和逻辑优化则是保障项目长期发展的关键。
在本次版本中,社区围绕 API、DAO、Datasource、Alert、Worker、Storage 等核心模块进行了持续优化与重构。相关改进统一了代码实现规范,清理了冗余逻辑,并进一步提升了系统的可维护性与扩展能力。
相关 PR 包括:#18103、#18104、#18105、#18107、#18111、#18112、#18113、#18114、#18115、#18116、#18117 以及 #18118。
与此同时,@ruanwenjun 还持续推进 Repository DAO 重构以及返回对象类型优化工作。相关 PR 包括:#18226、#18227、#18228、#18229、#18230、#18232、#18233、#18234、#18236、#18245,以及 #18250 至 #18263 的多个 Repository 重构 PR。
这些改造将大量 Map<String,Object> 返回结构替换为强类型对象,为未来版本开发奠定了更加清晰的架构基础。
稳定性持续提升,多个关键问题得到修复
除了功能增强之外,3.4.2 还修复了多个生产环境中的关键问题。
PR #18033(@ruanwenjun)修复了 JDBC Connection 的创建方式,改为通过 Driver 创建连接,提高了数据库连接稳定性。
PR #18042 和 #18044(@njnu - seafish)分别修复了 Kubernetes Task 与 Zeppelin Task 参数传递失效问题。
PR #18155(@SbloodyS)修复了补数据场景下子工作流日期传递异常的问题。
PR #18146(@SbloodyS)解决了 CONTINUE 策略下工作流可能长期处于 RUNNING 状态的问题。
PR #18183(@ruanwenjun)修复了用户删除未授权项目任务定义的权限漏洞。
PR #18212 和 #18300(@ruanwenjun)进一步完善了 Workflow Trigger 以及 Access Token 的权限校验逻辑。
此外,社区还修复了 Docker Compose 部署异常、Helm Chart 配置问题、JDBC Registry REMOVE 事件异常以及 SQL License Header 解析问题等多个影响稳定性的缺陷。
文档与工程体系持续完善
除了代码层面的迭代之外,社区也持续投入文档建设和工程化改进。
本次版本更新了 FAQ 文档,优化了参数传递说明,新增 AGENT.md 和 CLAUDE.md 文件,同时修复了多个文档格式与链接问题。
CI/CD 流程方面,社区恢复了 Python E2E 测试,优化了单元测试执行效率,并改进了 Docker 发布流程和 GitHub Code Owner 管理机制。
这些工作虽然不会直接出现在产品功能列表中,却是保障项目长期健康发展的重要基础设施。
感谢所有贡献者
Apache DolphinScheduler 3.4.2 的顺利发布离不开全球社区贡献者的共同努力。感谢发版经理 @ruanwenjun 的积极贡献,在他的全力协调下,共计 19 名贡献者共同出色地完成了本次版本的工作:
@ruanwenjun
@SbloodyS
@det101
@njnu - seafish
@macdoor
@norrishuang
@leocook
@wcmolin
@asadjan4611
@HEEKDragonOne
@CloudExtreme
@Mrhs121
@hiSandog
@pjfanning
@sanjana2505006
@shaolei7788
@llphxd
@includetts
@shrihari7396
感谢所有提交代码、Issue、文档和社区反馈的开发者。正是因为社区每一位贡献者的持续投入,Apache DolphinScheduler 才能不断向前发展。
下载与升级
Apache DolphinScheduler 3.4.2 已正式发布,本次版本在云原生能力、监控体验、安全治理、任务插件以及系统稳定性等方面均带来了显著提升,将为企业级生产环境提供更加稳定、高效和安全的工作流调度能力,欢迎用户升级体验。
* 下载地址:<https://dolphinscheduler.apache.org/zh - cn/download/3.4.2>
* Release Note:<https://github.com/apache/dolphinscheduler/releases/tag/3.4.2>