怀念夏天 发表于 2024-6-13 16:39:50

【运维本事】海豚调理工作流实例卡在正在停止&任务实例卡在正在运行怎么办

在大数据调理系统中,,大家大概会遇到任务实例状态更新不及时的环境。
对于Apache DolphinScheduler用户来说,这大概意味着前端显示的任务状态与实际环境不一致,即使任务已经在后台停止运行,前端仍显示为“正在运行”。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_ACECE7071F504FC188BD3508D37C7B95
这种现象不但影响监控和管理,还大概导致后续任务调理出现问题。那么,当你遇到这种环境时,应该怎样处理呢?本文将详细介绍这一现象及其办理方法,资助你快速规复系统的正常运行。
现象

在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的日常运维中,及时更新任务实例的状态至关重要。通过相识和掌握怎样手动修改任务实例状态,我们可以快速响应并办理状态卡住的问题,确保系统的稳定运行。
希望本文提供的方法能够资助你在遇到类似问题时敏捷找到办理方案。
本文由 白鲸开源 提供发布支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【运维本事】海豚调理工作流实例卡在正在停止&任务实例卡在正在运行怎么办