【运维技巧】海豚调度工作流实例卡在正在停止&任务实例卡在正在运行怎么办?

在大数据调度系统中,,大家可能会碰到任务实例状态更新不及时的情况。

对于Apache DolphinScheduler用户来说,这可能意味着前端显示的任务状态与实际情况不一致,即使任务已经在后台停止运行,前端仍显示为“正在运行”。

file

这种现象不仅影响监控和管理,还可能导致后续任务调度出现问题。那么,当你遇到这种情况时,应该如何处理呢?本文将详细介绍这一现象及其解决方法,帮助你快速恢复系统的正常运行。

现象

在Apache DolphinScheduler所在的host中查看,实际上执行的任务已经停止,但在前端界面上,任务实例的状态依然显示为“正在运行”,没有及时更新。

解决办法

要解决这个问题,我们需要手动修改Apache DolphinScheduler元数据中的任务实例状态。

以下是具体步骤:

官方元数据文档https://dolphinscheduler.apache.org/zh-cn/docs/1.3.6/metadata-1.3

  • 访问存储Apache DolphinScheduler元数据的MySQL数据库。

  • 查找存储任务实例信息的表t_ds_task_instance。

t_ds_task_instance
字段类型注释
ID整数主键
姓名字符任务名称
进程实例 ID整数流程实例id
状态tinyint任务实例状态:0 提交成功,1 正在运行,2 准备暂停,3 暂停,4 准备停止,5 停止,6 失败,7 成功,8 需要容错,9 kill,10 等待线程,11 等待依赖完成
  • 首先找到状态卡住的任务实例
SELECT * FROM `t_ds_task_instance` WHERE `status` = 1

如果有多个正在运行的任务实例,根据启动时间来判断具体是哪个。通过筛选其id执行SQL

手动将状态改为失败或停止。

UPDATE `t_ds_task_instance` SET state = 6 WHERE `id` = '2465747';

操作之后可以在前端看到任务实例状态已变为失败或停止。对应的工作流实例也会变为失败或停止。

错误的解决办法

之前参考的是:https://blog.csdn.net/Lzx116/article/details/128189897

该作者修改的是这个表t_ds_process_instance

此表为工作流实例的元数据表,而不是任务实例的元数据表。

修改完之后去前端看工作流实例的状态会变为“正在运行”,点击“停止”按钮后依然会卡在“正在停止”。

我猜测工作流实例的状态是检测任务实例的状态判断的,所以单纯修改工作流实例的状态不能达到目的。需要修改更基本的任务实例的状态。

结尾

在Apache DolphinScheduler的日常运维中,及时更新任务实例的状态至关重要。通过了解和掌握如何手动修改任务实例状态,我们可以快速响应并解决状态卡住的问题,确保系统的稳定运行。

希望本文提供的方法能够帮助你在遇到类似问题时迅速找到解决方案。

本文由 白鲸开源科技 提供发布支持!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DolphinScheduler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值