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

社区朋友们,今年 6 月份的社区月报来啦!
17836784526603c7f6f45544e1f15


点亮⭐️

https://github.com/apache/DolphinScheduler



点击蓝字 关注我们



社区朋友们,今年 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 月数据前的标准动作:




git fetch origin devgit checkout devgit pull --rebase

贡献者榜单


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

  • eye-gu、Jarek Potiuk、luxiaolong、njnu-seafish、suyc、Victor Laborie、Wenjun Ruan、xiangzihao、Yanjun Qiu
DS排行榜6

关键技术变更深度分析


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 放回长期演进方向来看,本月更像一次“把边边角角但高频会踩的坑补齐”的维护窗口:

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

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

  • 2026-06-02

    #18310
    Add AGENTS.md + SECURITY.md to make the security model discoverable
  • 2026-06-04

    #18317
    Release 3.4.2
  • 2026-06-04

    #18319
    Hotfix 3.4.2 doc error
  • 2026-06-05

    #18321
    Update the parameter priority explanation in the docs
  • 2026-06-05

    #18323
    Add a note to the parameter priority documentation specifying and fix some issues
  • 2026-06-07

    #18316
    Remove dead code after t_ds_relation_user_alertgroup table dropped
  • 2026-06-10

    #18331
    Replace HashMap with ConcurrentHashMap in UserGroupInformationFactory
  • 2026-06-12

    #18341
    Fix duplicate app.kubernetes.io/name label on ConfigMap
  • 2026-06-12

    #18333
    Remove plaintext passwords from the logs
  • 2026-06-12

    #18336
    Update mysql helm chart version
  • 2026-06-15

    #18347countTaskInstanceStateByProjectCodes
    uses submit_time filtering
  • 2026-06-16

    #18327
    Fix and enrich the documentation for parameter priority
  • 2026-06-16

    #18355
    Change the description field to optional
  • 2026-06-17

    #18353
    Add kill-application-when-task-failover logic
  • 2026-06-17

    #18352
    Fix rerun workflow instance should follow the specified workerGroup
  • 2026-06-18

    #18360
    Change the description field to optional in k8s config
  • 2026-06-22

    #18351
    Fix forceTaskSuccesscannot reset the last unsuccessful workflow instance to success
  • 2026-06-22

    #18363
    Fix sonar token leak
  • 2026-06-23

    #18374
    Remove sonar check
  • 2026-06-23

    #18375
    Fix auto labeler error
  • 2026-06-23

    #18308
    Frontend correctly uses the preferred values of the associated project for task creating and workflow scheduling
  • 2026-06-26

    #18381
    Fix 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




END




178367846503096dea826c2f1562a



用户案例


DolphinScheduler Agent开源上线Cisco Webex天翼云Zoom网易邮箱 每日互动 惠生工程作业帮 博世智驾蔚来汽车 长城汽车集度长安汽车思科网讯食行生鲜联通医疗联想新网银行兴业证券唯品富邦消费金融 自如有赞伊利当贝大数据珍岛集团传智教育BigoYY直播 拈花云科太美医疗深圳某智能制造企业
178367846503096dea826c2f1562a



迁移实战


Azkaban Ooize(当贝迁移案例)airflow (有赞迁移案例)Air2phin(迁移工具)Airflow
178367846503096dea826c2f1562a



最新发版消息



Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
178367846503096dea826c2f1562a



加入社区


关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org(向邮箱发送任意内容,收到邮件后回复同意订阅即可)
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

‍代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler


1783678466786ce91bb9eaa4af790


178367846733047b6464bafe7d1de

你的好友小海豚拍了拍你

并请你帮她点一下“分享”