news 2026/7/11 5:07:21

Apache DolphinScheduler 6 月治理优化,补齐调度运维全链路细节

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache DolphinScheduler 6 月治理优化,补齐调度运维全链路细节

社区朋友们,今年 6 月份的社区月报来啦!不同于常规月度大版本功能迭代,本月 Apache DolphinScheduler 社区全力深耕底层治理!小伙伴们重点打磨了平台稳定性,比如完成 3.4.2 版本运维闭环、优化任务故障转移能力、修复高并发偶发故障、落地日志敏感数据脱敏,补齐部署、存储、CI 工程等各类线上细碎短板。

本篇月报,我们就带大家梳理一下 6 月份项目的核心生产变更、生产环境升级建议,并公布 6 月优秀社区贡献者榜单,下滑查看吧!✨

本月项目变更一览

  • 统计范围:2026-06-01 至 2026-07-01
  • 合并 PR:22
  • 贡献者:9
  • 代码变更:+630 / -473
  • 主要波及模块:Master、API、Storage、Helm、UI、Docs/治理

可以看到,6 月的项目变更更偏“发布维护 + 稳定性补强 + 文档完善”:既有 3.4.2 发布与相关修订,也有并发安全、日志脱敏、Helm 修复、S3 资源列表等实用改进。

适合谁看:

  • 终端用户/业务方:想快速判断 6 月有没有值得关注的稳定性或可用性变化
  • 运维/平台同学:重点关注 failover、Helm、S3、日志安全这几类上线影响面较大的改动
  • 开发者:适合看 6 月社区把精力放在了哪些“治理型修复”上

对用户最有感的 6 件事

  1. 3.4.2 发布与修订已经落地
    6 月包含 3.4.2 发布以及发布后文档修订,属于“版本维护月”的典型节奏。对应 PR:#18317、#18319
  2. Worker 日志更安全:避免明文密码落日志
    对多租户/企业环境尤其关键:日志泄露往往比功能 bug 更“隐蔽且致命”。对应 PR:#18333
  3. Helm 使用体验修复与依赖更新
    包含 ConfigMap label 冲突修复以及 MySQL chart 版本更新,直接影响部署体验与可维护性。对应 PR:#18341、#18336
  4. 并发安全修复:避免 ConcurrentModificationException
    将 HashMap 替换为 ConcurrentHashMap,属于典型的“偶发但影响面大”的稳定性补强。对应 PR:#18331
  5. Failover 场景增强:任务 failover 时可 kill application
    对 Yarn / K8s 等外部执行引擎更友好,避免任务切换后出现残留应用占资源。对应 PR:#18353
  6. S3 资源列表限制修复:不再只返回 1000 条
    对依赖 S3 存储的用户是实际痛点修复,直接影响可见性与可用性。对应 PR:#18381

升级与验证建议

如果你是生产用户,建议按“发布维护类变更 + 稳定性补强”的思路做验证:

  • 必回归:日志脱敏(敏感信息不落盘)、并发场景稳定性、存储(S3)资源可见性、Helm 部署升级
  • 建议补充:发布版本相关的升级路径与文档一致性检查(特别是平台内嵌文档/链接)

建议在测试/集成环境保留以下拉取方式,作为后续补充 6 月数据前的标准动作:

gitfetch origin devgitcheckout devgitpull--rebase

贡献者榜单

按本地提交 author name 统计,6 月参与提交的作者共 9 位:

  • eye-gu、Jarek Potiuk、luxiaolong、njnu-seafish、suyc、Victor Laborie、Wenjun Ruan、xiangzihao、Yanjun Qiu

关键技术变更深度分析

1. 并发安全修复:把偶发异常前移到代码结构层解决

  • 代表 PR:#18331
  • 主要变更:UserGroupInformationFactory中缓存UserGroupInformation的容器从HashMap改为ConcurrentHashMap,同时新增了专门的并发测试用例。
  • 为什么重要:这类问题最麻烦的地方,不在于“会报错”,而在于“只会在高并发下偶发报错”。一旦 Hive 数据源登录与 Kerberos 续期线程并发访问同一份缓存,普通HashMap在遍历和修改同时发生时,就可能触发ConcurrentModificationException
  • 这次修复的价值:社区没有只做一个“临时加锁”的热修,而是把核心共享结构替换成并发容器,再补上一组专门模拟forEach + logout/login并发冲突的测试。这样修的不是表面现象,而是把问题从根上收掉。
  • 对使用者的意义:如果你的环境里 Hive、Kerberos、长连接会话比较多,这类修复能明显降低“偶发失败、难以复现、重试又恢复”的灰色故障。
  • 建议回归:重点看 Hive 相关任务、长时间运行后的 Kerberos 续期、以及高并发数据源访问场景。

2. Failover 逻辑增强:不仅切换任务,还主动处理外部残留应用

  • 代表 PR:#18353
  • 主要变更:新增kill-application-when-task-failover配置项,并把它接入MasterConfigTaskExecution以及多套部署配置文件中。
  • 为什么重要:在调度系统里,failover 以前更多关注“调度状态能不能接上”,但对 Yarn、K8s 这类外部执行引擎来说,真正的风险常常在外部应用残留。调度端认为任务已经接管了,外部引擎里却还挂着旧 application,占资源、打日志、甚至继续跑。
  • 这次修复的价值:它把 failover 从“只处理调度元数据”推进到“顺手处理执行现场”。从提交看,这个改动不仅改了 Master 代码,还同步补到了application.yamldocker-compose、Kubernetes values 和 README,说明它不是实验性质,而是打算给多种部署方式都提供统一开关。
  • 对使用者的意义:对 Yarn/K8s 用户最有价值。以前一次 Master 异常之后,可能要同时处理任务状态恢复和外部资源清理;现在至少有了统一配置入口,可以把 failover 后的“残留 application”问题前置治理。
  • 建议回归:模拟 Master 切换、任务执行中断、外部引擎 application 残留三类场景,确认开关启用后不会误杀正常任务,也不会放过应回收的 application。

3. S3 分页修复:从“看起来能用”到“数据量上来后还能用”

  • 代表 PR:#18381
  • 主要变更:S3StorageOperator.listStorageEntity()从单次listObjectsV2调用,改成基于ContinuationToken的循环拉取,并补充了测试。
  • 为什么重要:这是非常典型的“开发环境没问题,生产环境才暴露”的缺陷。S3 的ListObjectsV2默认会分页,如果代码只取第一页,那么资源数量一旦超过 1000,就会出现“明明文件在,但列表里看不到”的问题。
  • 这次修复的价值:修复点非常直接,也很规范。它没有去做业务层补丁,而是在存储插件底层把分页遍历补完整,直到isTruncated()为假才结束。这样上层资源中心、文件管理、目录浏览这些依赖存储列举能力的功能,都会一起受益。
  • 对使用者的意义:只要你的 S3 桶里资源规模大、目录层级深,或者本来就把 DolphinScheduler 当统一资源入口,这个修复就是“真问题真收益”,不是优化体验,而是恢复正确性。
  • 建议回归:准备超过 1000 条对象的目录、混合目录与文件的前缀结构,确认 UI/API 列表结果与实际桶内对象数一致。

4. 日志脱敏:改动很小,但安全收益很大

  • 代表 PR:#18333
  • 主要变更:从 diff 看,这个提交只改了PasswordUtils一处代码,行数变化非常小。
  • 为什么依然值得单独讲:安全类改动不能只按“改了多少行”判断价值。密码明文出现在日志里,往往不是立刻导致任务失败,而是把风险埋进日志平台、排障工单、备份归档和多人协作链路里,影响范围反而更广。
  • 这次修复的价值:它说明 6 月社区不仅在修功能 bug,也在补“默认安全”细节。很多真实事故不是权限系统失守,而是普通日志把不该出现的信息带出来;这类修复属于投入小、收益大的治理型改动。
  • 对使用者的意义:如果你们已经把 Worker 日志接入 ELK、SLS、CloudWatch 这类集中式日志系统,这个改动的意义会比单机部署更大,因为日志一旦被汇聚,泄露面会指数级放大。
  • 建议回归:重点检查连接配置打印、异常栈、脱敏后日志是否仍保留足够排障信息,避免“安全性上去了,可观测性没了”。

方向映射

把 6 月这 22 个 PR 放回长期演进方向来看,本月更像一次“把边边角角但高频会踩的坑补齐”的维护窗口:

  • 发布与治理:#18310、#18317、#18319、#18363、#18374、#18375
  • 运行时稳定性:#18331、#18347、#18351、#18352、#18353
  • 云原生与部署:#18336、#18341、#18355、#18360
  • 安全与合规:#18310、#18333、#18363
  • 生态与存储:#18381
  • 文档与用户体验:#18321、#18323、#18327、#18308

如果用一句话概括 Apache DolphinScheduler 项目在 6 月的变更,即不是“大功能月”,而是“把发布、部署、调度恢复和安全细节继续补平”的一个治理月。

附录 A:2026 年 6 月合并 PR 明细

  • 2026-06-02#18310Add AGENTS.md + SECURITY.md to make the security model discoverable
  • 2026-06-04#18317Release 3.4.2
  • 2026-06-04#18319Hotfix 3.4.2 doc error
  • 2026-06-05#18321Update the parameter priority explanation in the docs
  • 2026-06-05#18323Add a note to the parameter priority documentation specifying and fix some issues
  • 2026-06-07#18316Remove dead code aftert_ds_relation_user_alertgrouptable dropped
  • 2026-06-10#18331Replace HashMap with ConcurrentHashMap inUserGroupInformationFactory
  • 2026-06-12#18341Fix duplicateapp.kubernetes.io/namelabel on ConfigMap
  • 2026-06-12#18333Remove plaintext passwords from the logs
  • 2026-06-12#18336Update mysql helm chart version
  • 2026-06-15#18347countTaskInstanceStateByProjectCodesusessubmit_timefiltering
  • 2026-06-16#18327Fix and enrich the documentation for parameter priority
  • 2026-06-16#18355Change the description field to optional
  • 2026-06-17#18353Addkill-application-when-task-failoverlogic
  • 2026-06-17#18352Fix rerun workflow instance should follow the specifiedworkerGroup
  • 2026-06-18#18360Change the description field to optional in k8s config
  • 2026-06-22#18351FixforceTaskSuccesscannot reset the last unsuccessful workflow instance to success
  • 2026-06-22#18363Fix sonar token leak
  • 2026-06-23#18374Remove sonar check
  • 2026-06-23#18375Fix auto labeler error
  • 2026-06-23#18308Frontend correctly uses the preferred values of the associated project for task creating and workflow scheduling
  • 2026-06-26#18381Fix list resources returned only 1000 records in s3 storage type

附录 B:参考链接

  • PR #18308: https://github.com/apache/dolphinscheduler/pull/18308
  • PR #18310: https://github.com/apache/dolphinscheduler/pull/18310
  • PR #18316: https://github.com/apache/dolphinscheduler/pull/18316
  • PR #18317: https://github.com/apache/dolphinscheduler/pull/18317
  • PR #18319: https://github.com/apache/dolphinscheduler/pull/18319
  • PR #18321: https://github.com/apache/dolphinscheduler/pull/18321
  • PR #18323: https://github.com/apache/dolphinscheduler/pull/18323
  • PR #18327: https://github.com/apache/dolphinscheduler/pull/18327
  • PR #18331: https://github.com/apache/dolphinscheduler/pull/18331
  • PR #18333: https://github.com/apache/dolphinscheduler/pull/18333
  • PR #18336: https://github.com/apache/dolphinscheduler/pull/18336
  • PR #18341: https://github.com/apache/dolphinscheduler/pull/18341
  • PR #18347: https://github.com/apache/dolphinscheduler/pull/18347
  • PR #18351: https://github.com/apache/dolphinscheduler/pull/18351
  • PR #18352: https://github.com/apache/dolphinscheduler/pull/18352
  • PR #18353: https://github.com/apache/dolphinscheduler/pull/18353
  • PR #18355: https://github.com/apache/dolphinscheduler/pull/18355
  • PR #18360: https://github.com/apache/dolphinscheduler/pull/18360
  • PR #18363: https://github.com/apache/dolphinscheduler/pull/18363
  • PR #18374: https://github.com/apache/dolphinscheduler/pull/18374
  • PR #18375: https://github.com/apache/dolphinscheduler/pull/18375
  • PR #18381: https://github.com/apache/dolphinscheduler/pull/18381
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 5:06:39

计算机毕业设计之基于SpringBoot与Vue的共享汽车管理系统的设计与实现

本论文借助 Java 编程语言,运用VUE 前端架构及SpringBoot 后端架构,以 MySQL 数据库为依托,对一套共享汽车管理系统进行了分析和设计。此系统包括汽车信息、汽车预定等功能,并划分为用户、工作人员和管理员三个角色,各…

作者头像 李华
网站建设 2026/7/11 5:05:01

ESP32 + LinkBoy 5.0 实战:3种DIY时钟方案对比与代码移植避坑指南

ESP32 LinkBoy 5.0 实战:3种DIY时钟方案对比与代码移植避坑指南当创客们第一次接触ESP32与LinkBoy 5.0的组合时,往往会惊叹于这个平台的无限可能。作为一款面向教育领域的图形化编程工具,LinkBoy 5.0降低了嵌入式开发的门槛,而ES…

作者头像 李华
网站建设 2026/7/11 5:04:32

Trae+Skill-creator:GitHub项目秒变AI可调用私有技能

1. 项目概述:为什么“Trae Skill-creator”不是噱头,而是开发者私有技能基建的临界点 你有没有过这种体验:在 GitHub 上翻到一个惊艳的开源项目——比如一个能自动解析会议录音生成带时间戳纪要的 Python 脚本,或者一个把 Notio…

作者头像 李华
网站建设 2026/7/11 5:02:11

uni-app web-view 组件实战:3步完成H5页面微信小程序化(含域名配置)

Uni-App Web-View 深度实战:从 H5 到微信小程序的平滑迁移与进阶配置 在当今多端融合的开发趋势下,如何高效复用现有 H5 资源同时快速覆盖微信小程序生态,成为许多前端团队的核心诉求。本文将深入探讨基于 Uni-App 的 web-view 组件实现 H5 …

作者头像 李华
网站建设 2026/7/11 4:56:48

产学研 | 清华大学2026年博士生暑期社会实践正式开启

2026年6月28日,天洑实践基地迎来清华大学15名博士研究生,这已是双方携手开展的第六届暑期实践活动。 在国产工业软件加速突围、自主创新上升为国家战略的关键时期,校企共建实践平台,不仅为高校学子提供了知行合一的试验场&#x…

作者头像 李华