首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Dolphin Scheduler秒级别工作流异常处理

Dolphin Scheduler秒级别工作流异常处理

作者头像
Fayson
发布于 2020-03-10 09:57:58
发布于 2020-03-10 09:57:58
6.1K00
代码可运行
举报
文章被收录于专栏:Hadoop实操Hadoop实操
运行总次数:0
代码可运行

1

组件介绍

Apache Dolphin Scheduler是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

官网:

https://dolphinscheduler.apache.org/en-us/

github:

https://github.com/apache/incubator-dolphinscheduler

2

问题描述

在dolphinscheduler-1.1.0中,流程定时的操作中,默认的crontab秒位是*(在1.2.0的版本中,crontab的默认值秒位和分钟位均默认位0),如果开发小伙伴手滑非常容易提交上去一个每秒执行的工作流。这个手滑的操作会提交大量工作流到ds上,导致zk上的任务队列积压,导致调度系统紊乱甚至GG。

为啥要整理这个问题呢?因为我司曾在生产环境翻过车,社区也有几位小伙伴遇到过同样的问题。下面给出解决方案:

  • ds出现秒级调度任务的处理流程
  • 10行代码,在ds的前端做crontab表达式限制的魔改方案

3

秒级调度任务的处理流程

DS如何执行一个工作流

ds中工作流执行的简化流程图

  • command对应t_escheduler_command表
  • 1.2.0-command对应t_ds_command表
  • master扫描线程获取command,进行dag切分,然后将task到zk上的task队列
  • task队列的znode是/escheduler/tasks_queue
  • 1.2.0对应/dolphinscheduler/tasks_queue
  • worker Fetch线程从task队列中拉取task进行执行
秒级任务应对操作

(感谢ds社区@乔占卫提供解决思路!!!)

  • 停止秒级别的定时任务,下线
  • 将ds的服务暂时停掉
    • 运行ds安装目录/bin/stop_all.sh
  • 查看t_escheduler_command表积累了多少数据,如果没有必要,删除
  • 将所有的流程实例和任务实例的状态都变为终态
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#将流程和任务实例的状态都变为终态
SELECT * FROM t_escheduler_process_instance WHERE state = 0
#查询出来执行delete操作
SELECT * FROM t_escheduler_process_instance WHERE state = 1
#state状态=1的可以保留也可以删除,保留就将其状态变为6,失败状态,
#然后把对应的task_instance非终态的任务也置为6
#建议直接干掉
  • 删除zk上任务队列znode上积压的数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#ds-1.1.0
delete /escheduler/tasks_queue

#ds-1.2.0
delete /dolphinscheduler/tasks_queue
  • 重启ds的所有服务

4

魔改前端-限制Crontab

开发环境搭建
  • 安装node v8.9.4
  • webstorm
  • clone ds 代码
  • 前端开发文档
    • https://dolphinscheduler.apache.org/zh-cn/docs/1.2.0/user_doc/frontend-development.html
代码修改
  • src/js/conf/home/pages/projects/pages/definition/list/_source/timing.vue
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let crontabExp = this.crontab.split(" ")
let second = crontabExp[0]
let minutes = crontabExp[1]

if (second === '*' || minutes === '*') {
  this.$message.warning('$(i18n.$t('Crontab Exp Second/Minutes is eq *'))')
  return false
}
  • 将Crontab Exp Second/Minutes is eq *添加到en_US.js和zh_CN.js中
  • 效果验证
    • npm run build, 将生成的dist文件夹覆盖nginx上的前端资源文件
    • 自从把crontab表达式限制之后,秒级任务这种刺激的事情再也没出现过!!!

小结

在ds的1.1.0版本中(现在生产环境应该大多数是1.1.0),开发的时候手滑很容易造成的工作流秒提交问题,如果不小心容易造成生产事故(去年我被搞了两次

)crontab的默认值的秒位和分钟位已经在ds-1.2.0中改为了0, 这个问题的出现概率低了很多。建议在ds的web端加异常crontab表达式的限制代码,毕竟本事大不如不耽着嘛

!!!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
欢迎试用Dolphin Scheduler-1.2.1!!!
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Dolphin Scheduler 1.2.0 部署参数分析
Apache Dolphin Scheduler是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
Fayson
2020/03/10
4K0
Dolphin Scheduler 1.2.0 部署参数分析
如何在CDH5.16.2中部署Apache Dolphin Scheduler 1.2.0
官网 : https://dolphinscheduler.apache.org/en-us/
Fayson
2020/02/18
2.3K0
如何在CDH5.16.2中部署Apache Dolphin Scheduler 1.2.0
大数据调度平台分类大对比(Oozie/Azkaban/AirFlow/XXL-Job/DolphinScheduler)
大数据调度系统,是整个离线批处理任务和准实时计算计算任务的驱动器。这里我把几个常见的调度系统做了一下分类总结和对比。
王知无-import_bigdata
2022/04/13
11.1K0
Doris + Flink + DolphinScheduler + Dinky 构建开源数据平台
本文整理自 Dinky 实时计算平台 Maintainer 亓文凯老师在 Apache Doris & Apache SeaTunnel 联合 meetup 的实践分享,通过 Doris + Flink + DolphinScheduler + Dinky 构建开源数据平台。
文末丶
2023/02/26
16K3
Doris + Flink + DolphinScheduler + Dinky 构建开源数据平台
Dolphin Scheduler 1.1.0升级1.2.0避坑指南
Apache Dolphin Scheduler是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
Eights
2020/07/10
1.6K0
Dolphin Scheduler 1.1.0升级1.2.0避坑指南
用户案例 | 蜀海供应链基于 Apache DolphinScheduler 的数据表血缘探索与跨大版本升级经验
蜀海供应链是集销售、研发、采购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业。2021年初,蜀海信息技术中心大数据技术研发团队开始测试用Apache DolphinScheduler作为数据中台和各业务产品项目的任务调度系统工具。本文主要分享了蜀海供应链在海豚早期旧版本实践过程中的探索创新和在跨大版本升级部署过程中的经验,希望对大家有所启发和帮助。
用户6070864
2023/09/09
1.8K0
用户案例 | 蜀海供应链基于 Apache DolphinScheduler 的数据表血缘探索与跨大版本升级经验
Dolphin Scheduler 1.2.1部署参数分析
Apache Dolphin Scheduler是一个分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
Eights
2020/07/10
1.8K0
Dolphin Scheduler 1.2.1部署参数分析
调度系统Apache DolphinScheduler介绍和设计原理
大数据任务调度作为大数据建设中的核心基础设施。Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
大数据真好玩
2021/09/18
12.3K0
调度系统Apache DolphinScheduler介绍和设计原理
一文读懂,硬核 Apache DolphinScheduler3.0 源码解析
大家能关注DolphinScheduler那么一定对调度系统有了一定的了解,对于调度所涉及的到一些专有名词在这里就不做过多的介绍,重点介绍一下流程定义,流程实例,任务定义,任务实例。(没有作业这个概念确实也很新奇,可能是不想和Quartz的JobDetail重叠)。
王知无-import_bigdata
2022/11/11
2.6K0
一文读懂,硬核 Apache DolphinScheduler3.0 源码解析
【 airflow 实战系列】 基于 python 的调度和监控工作流的平台
本文介绍了 Airflow 这款开源的 DAG 流程编排框架,从架构、原理、优点、使用场景、实现细节、扩展、ETL、数据依赖、资源依赖、任务依赖、安全、Hook、日志、任务定义、执行、调度、监控、运维、社区、文档等方面进行了详细的介绍。Airflow 旨在解决 Celery 和 Kubernetes 等工具无法解决的问题,通过实践证明了 DAG 流程编排的价值。Airflow 的架构设计巧妙,实现了分布式、高可用的 DAG 执行引擎。Airflow 使用 Python 实现,支持多种 DAG 定义格式,可与主流的分布式数据存储系统无缝集成。Airflow 还支持云原生技术,可以轻松地在 Kubernetes 上运行。通过本文的讲解,读者可以了解到 Airflow 的设计理念、架构、使用方式和实现细节,掌握如何在分布式环境下实现 DAG 流程编排。同时,本文还提供了实际案例,帮助读者更好地理解 Airflow 的使用方式。
刘远
2017/04/27
6.3K0
【 airflow 实战系列】 基于  python  的调度和监控工作流的平台
Apache AirFlow 入门
Airflow 于 2014 年 10 月由 Airbnb 的 Maxime Beauchemin 开始。它是第一次提交的开源,并在 2015 年 6 月宣布正式加入 Airbnb Github。
HLee
2021/06/04
2.9K0
Apache AirFlow 入门
DolphinScheduler中处理任务/告警/事件相关核心思路
最近在看DolphineScheduler,发现DolphinScheduler在处理任务时,通过先将任务快速的存储在数据库中,然后基于对应的task,将task放入队列中,然后将task进行快速消费的思路。这种模型在很多框架中,都有体现。
路行的亚洲
2024/07/24
4920
DolphinScheduler中处理任务/告警/事件相关核心思路
Apache DolphinScheduler 在大数据环境中的应用与调优
下午好,我叫李进勇,是政采云数据平台架构师,在政采云主要负责大数据底层架构和数据工程化方面,同时也是 Dolphinscheduler的PMC成员。今天我将重点分享关于Apache Dolphinscheduler 2.0.9版本中一些优秀的功能。选择这个主题的原因是因为在2.0.X版本的演进中,我们致力于打造一个稳定且功能强大的工作流编排调度平台,使得工作流编排和批处理调度变得更加稳定可靠,因此将此主题命名为“聚焦调度”。
用户6070864
2023/09/06
1.2K0
Apache DolphinScheduler 在大数据环境中的应用与调优
浅析 Apache DolphinScheduler 工作流实例的生命周期
大家好,我是蔡顺峰,白鲸开源的数据工程师,同时也是Apache DolphinScheduler项目的committer和PMC成员。今天我想和大家分享的主题是工作流实例的生命周期。
857技术社区
2023/07/26
9260
浅析 Apache DolphinScheduler 工作流实例的生命周期
实用调度工具Airflow
引言 前面写过一篇文章《端午搬砖:聊聊调度云服务》,主要讲云服务的。如果企业也业务上云,可以优先选用这些服务,减少工作量。 而在传统企业内部,数据集成是基础,更是每个企业里面都至少有一个ETL工具或者
大数据和云计算技术
2018/03/08
4K0
实用调度工具Airflow
Apache DolphinScheduler之有赞大数据开发平台的调度系统演进
在不久前的 Apache DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人宋哲琦带来了平台调度系统从 Airflow 迁移到 Apache DolphinScheduler 的方案设计思考和生产环境实践。
大数据真好玩
2021/12/15
3K0
Apache DolphinScheduler之有赞大数据开发平台的调度系统演进
Apache DolphinScheduler 2.0.1 来了,备受期待的一键升级、插件化终于实现!
好消息!Apache DolphinScheduler 2.0.1 版本今日正式发布!
kk大数据
2021/12/20
2.1K0
Apache DolphinScheduler 2.0.1 来了,备受期待的一键升级、插件化终于实现!
Python中使用定时调度任务(Schedule Jobs)的5种方式
今天构建的大多数应用程序都需要某种方式的调度机制。轮询 API 或数据库、不断检查系统健康状况、将日志存档等是常见的例子。 Kubernetes和Apache Mesos等使用自动伸缩扩容技术(Auto-scaling)的软件需要检查部署的应用程序的状态,为此它们使用定期运行的存活探针(Liveness Probe)。调度任务需要与业务逻辑解耦,因此我们要使用解耦的执行队列,例如Redis队列。
Regan Yue
2021/10/12
2.4K0
Apache Airflow 2.3.0 在五一重磅发布!
大家好,我是一哥,在这个五一假期,又一个Apache项目迎来了重大版本更新——Apache Airflow 2.3.0 在五一重磅发布!
数据社
2022/05/26
2.1K0
Apache Airflow 2.3.0 在五一重磅发布!
012.DolphinScheduler案例实战
需求是,使用spark程序读用户表,统计用户个数,保存到结果表user_count:
CoderJed
2021/02/04
2.2K0
012.DolphinScheduler案例实战
推荐阅读
相关推荐
Dolphin Scheduler 1.2.0 部署参数分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档