写点什么

Apache DolphinScheduler 工作流卡死,怎么解决?

作者:白鲸开源
  • 2025-12-10
    天津
  • 本文字数:751 字

    阅读完需:约 2 分钟

背景

Apache DolphinScheduler 有时候可能会出现工作流卡死问题:


  • 工作流显示运行状态(小齿轮一直转),但进入工作流查看各任务实例却是没有运行的状态。工作流执行时间超时严重,有的甚至达到几天都执行不完。

  • 工作流显示运行状态,进入工作流,各子工作流也显示运行状态,但再进入子工作流,各任务实例其实已经运行完了,此时子工作流卡节点死不动一直运行状态,下一个节点也不调起。持续很久都不结束。

解决思路

发生这种情况,根据以往处理经验,只有一种可能:那就是 Apache DolphinScheduler 操作 MySQL 数据库超时了,MySQL 出现了死锁、事务超时、查询时间长等,导致 Apache DolphinScheduler 状态与数据库不同步了。工作流也无法继续下去。

解决方案

一般 Apache DolphinScheduler 的数据库操作超时,就会卡住,有的会卡在调数据库前,有的是会卡在调数据库后,对数据库基本是写操作。卡住咱们也没法,只能保证数据库能用了,然后再重试之前的操作。


我们一般采用如下方案:


  1. 查看 Apache DolphinScheduler MySQL 数据库的工作流定义、任务定义、工作流实例、任务实例等表进行简单的更新操作是否存在超时/锁表等问题。

  2. 如果 MySQL 没问题

  3. 可以查看前后端状态是否一致,不一致可以人工修改库强制改成一致的,让流程继续下去。

  4. 如果状态一致,可以杀死工作流,手工删除工作流实例,然后重启补数调度。

  5. 如果 MySQL 有问题

  6. 是否查询慢更新慢,查看 MySQL 机器是否资源不够了。

  7. 是否无法查询或更新,发生了锁表,通过 show processlist,看哪些数据库连接连接时长很长,尤其是那些 sleep 的,将该连接 kill 掉“kill processid”。processid 是 show processlist 执行后列表的第一列。


通过上面的解决方案,大体能解决绝大部分问题。有问题评论区大家可以一起沟通。


原文链接:https://blog.csdn.net/f4vinny/article/details/155012377

用户头像

白鲸开源

关注

一家开源原生的DataOps商业公司。 2022-03-18 加入

致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。

评论

发布
暂无评论
Apache DolphinScheduler 工作流卡死,怎么解决?_大数据_白鲸开源_InfoQ写作社区