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


                                                                                                                                                <h1>背景</h1> 

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

  • 工作流显示运行状态(小齿轮一直转),但进入工作流查看各任务实例却是没有运行的状态。工作流执行时间超时严重,有的甚至达到几天都执行不完。
  • 工作流显示运行状态,进入工作流,各子工作流也显示运行状态,但再进入子工作流,各任务实例其实已经运行完了,此时子工作流卡节点死不动一直运行状态,下一个节点也不调起。持续很久都不结束。

解决思路

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

解决方案

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

我们一般采用如下方案:

  1. 查看 Apache DolphinScheduler MySQL 数据库的工作流定义、任务定义、工作流实例、任务实例等表进行简单的更新操作是否存在超时/锁表等问题。
  2. 如果 MySQL 没问题
    • 可以查看前后端状态是否一致,不一致可以人工修改库强制改成一致的,让流程继续下去。
    • 如果状态一致,可以杀死工作流,手工删除工作流实例,然后重启补数调度。
  3. 如果 MySQL 有问题
    • 是否查询慢更新慢,查看 MySQL 机器是否资源不够了。
    • 是否无法查询或更新,发生了锁表,通过show processlist,看哪些数据库连接连接时长很长,尤其是那些sleep的,将该连接kill掉“kill processid”。processid是show processlist执行后列表的第一列。

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

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

                                                                                </div>



Source link

未经允许不得转载:紫竹林-程序员中文网 » Apache DolphinScheduler 工作流卡死,怎么解决?

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信 技术交流
推荐文章
每天精选资源文章推送
推荐文章
随时随地碎片化学习
推荐文章
发现有趣的