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

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

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

现象

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

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

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

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

  1. 14-MySQL DBA笔记-运维技巧和常见问题处理

    第14章 运维技巧和常见问题处理 DBA的成长,离不开对各种问题的处理.本章将为读者介绍一些运维技巧和常见问题的处理方法.我们需要意识到,别人的经验代替不了自己的经验,所以,多实践.多处理问题,最终会 ...

  2. ceph常用运维技巧总结1

    格式 json 数据增强可读性 --format json-pretty -f json-pretty ceph quorum_status -f json-pretty ceph mon_statu ...

  3. 《Kubernetes权威指南》——运维技巧

    1 Node的隔离和恢复 方法1: 创建新的Node配置文件指定spec.unschedulable: true 通过kubectl replace完成对Node的状态修改 kubectl repla ...

  4. 运维技巧-Nginx日志格式

    1.说一说 当你安装完nginx,输出的格式是比较乱的,这样我们就需要自己去定义一下,自己看着舒服的格式. 2.Nginx日志字段 $remote_addr 记录客户端IP,但她的值不是客户端提供的, ...

  5. 系统运维技巧(三)——利用dd命令临时增加交换分区

    有时会遇到内存不够用的情况,可以使用本文提供的方法进行临时增加交换分区. #制作交换分区——得到文件 [root@serv01 linux-2.6.38]# dd if=/dev/zero of=/s ...

  6. hadoop 性能调优与运维

    hadoop 性能调优与运维 . 硬件选择 . 操作系统调优与jvm调优 . hadoop运维 硬件选择 1) hadoop运行环境 2)  原则一: 主节点可靠性要好于从节点 原则二:多路多核,高频 ...

  7. ansible自动化运维工具使用详解

    一. ansible 简介 1. ansible ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行 ...

  8. Linux自动化运维部署+运维

    自动化部署及配置(Cobbler/Kickstart) 红帽发布的网络安装服务器套件 Cobbler可以说是一大Linux装机利器,可以快速的建立网络安装环境,据说比Kickstart还要好用. 分布 ...

  9. 自动化运维工具----ansible

    ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 主要模块以及功能: 1 command 2 user ...

  10. python自动化运维八:Ansible

    Ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控 ...

随机推荐

  1. fastjson对接口参数的某个字段不打印输出,如文件的base64字符串

    fastjson对接口参数的某个字段不打印输出,如文件的base64字符串 package com.example.core.mydemo.json5; import com.alibaba.fast ...

  2. excel计算日期天数和表格冻结首行

    excel计算日期天数和表格冻结首行 1.在单元格E35中输入公式DATEDIF(A35.B35."MD")MD表起始日期.结束日期天数差."Y" 时间段中的整 ...

  3. Python使用.NET开发的类库来提高你的程序执行效率

    Python由于本身的特性原因,执行程序期间可能效率并不是很理想.在某些需要自己提高一些代码的执行效率的时候,可以考虑使用C#.C++.Rust等语言开发的库来提高python本身的执行效率.接下来, ...

  4. OpenCV + sklearnSVM 实现手写数字分割和识别

    这学期机器学习考核方式以大作业的形式进行考核,而且只能使用一些传统的机器学习算法. 综合再三,选择了自己比较熟悉的MNIST数据集以及OpenCV来完成手写数字的分割和识别作为大作业. 1. 数据集准 ...

  5. 博客正式更换为emlog

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 博客正式更换为emlog 日期:2017-4-2 阿珏 谈 ...

  6. python 发起PUT请求,报"Method not Allowed" 和 取返回的报文的内容

    发起请求的时候,默认使用的POST请求方式,导致发起请求,返回[405 Method not Allowed ],检查此更新接口的请求方式为PUT,更改请求方式为PUT PUT接口返回的内容,不能通过 ...

  7. 交互式转化批处理工具 expect

    交互式转化批处理工具 expect expect中相关命令 spawn 启动新的进程 expect 从进程接收字符串 send 用于向进程发送字符串 interact 允许用户交互 exp_conti ...

  8. gitlab角色与权限

    用户在项目中的角色 Guest:访客.可以创建issue.发表评论,不能读写版本库.(就是看不了代码-) Reporter:Git项目测试人员.可以克隆代码,不能提交.QA.PM可以赋予这个权限. D ...

  9. python利用公私钥加解密

    小贴士 这里不再赘述公私钥的生成过程.可以利用OpenSSL进行生成. 加密代码 #!/usr/bin/python #加密 #conda install pycrypto #提前安装模块 impor ...

  10. selenium无头浏览器

    from selenium.webdriver import Edge # 在这里导入浏览器设置相关的类 from selenium.webdriver.edge.options import Opt ...