一文读懂:开源大数据调度系统Taier1.2版本新增的「工作流」到底是什么?[通俗易懂]

一文读懂:开源大数据调度系统Taier1.2版本新增的「工作流」到底是什么?[通俗易懂]一、什么是工作流? 在阐述什么是工作流之前,先说一下工作流和普通任务的区别,在于依赖视图。 普通任务本身他只会有自己的dag图,依赖视图是无边界的,不可控的,而工作流则是把整个工作流都展示出来,是有边

一文读懂:开源大数据调度系统Taier1.2版本新增的「工作流」到底是什么?

一、什么是工作流?

在阐述什么是工作流之前,先说一下工作流和普通任务的区别,在于依赖视图。

普通任务本身他只会有自己的dag图,依赖视图是无边界的,不可控的,而工作流则是把整个工作流都展示出来,是有边界的,可控的,这是工作流的优势。下面为大家介绍工作流的相关功能:

01 工作流—功能介绍

● 虚拟节点

虚拟节点,它是不产生任何数据的空跑节点(即调度到该节点时,系统直接返回成功,不会真正执行、不会占用资源或阻塞下游节点运行),比如说任务并行执行,那么就会用到虚拟节点。

file

● 周期生成

指调度系统按照调度配置自动定时运行的任务。

file

● 补数据运行

当业务变更,可以使用补数据功能。如修改了某个任务的代码,可将本月的数据按照新的代码重新跑一遍,立即生成所需数据。

● 调度属性

工作流中的子任务依赖于父任务的周期调度属性,父任务修改后,子任务同步修改,以工作流的周期调度属性作为各个子节点的周期调度时间。
file

● 工作流所在目录

修改工作流目录同步修改工作流下的子任务目录。
file

02 工作流—依赖成环

具体实现:

任务完成依赖的关系,key为当前节点,value为该节点的所有父节点Map < long list> nodeMap。

file

遍历nodeMap,以此遍历单集合中的每一个节点。每遍历一个新节点,就从头检查新节点之前的所有节点,用新节点和此节点之前所有节点依次做比较。如果发现新节点和之前的某个节点相同,则说明该节点被遍历过两次,链表有环。如果之前的所有节点中不存在与新节点相同的节点,就继续遍历下一个新节点,继续重复刚才的操作。

二、Taier工作流周期实例运行

了解完工作流的功能介绍后,我们来为大家分享Taier工作流周期实例运行:

01 Taier—周期实例生成

Taier主节点在启动的时候,会开启一个定时器,定时器会不停的去判断当日的实例是否已经生成。如果没有生成,就会触发事件给CycleJobBuilder生成实例,再通过JobDependency封装实例之间的依赖关系。

● CycleJobBuilder

用于生成周期实例。扫描数据库任务表并且获取zk上所有的Taier节点,把封装后的实例分配到每一台Taier节点上。

● JobDependency

用于生成job之间的依赖关系。

file

02 Taier—调度流程

在启动Taier服务时,会启动配置的所有调度器,并且开始扫描实例,并提交。

file

03 Taier—工作流任务状态修改逻辑

任务提交拦截器处理:

1、工作流下无子任务更新为完成状态

2、工作流下任务都是完成状态,任务提交队列可以移除

3、同时更新工作流engine_job状态,工作流只有四种状态,成功/失败/取消/提交中:

(1) 所有子任务状态为运行成功时,工作流状态更新为成功

(2) 工作流状态根据子任务的运行状态来确定,失败状态存在优先级:运行失败>提交失败>上游失败

a.子任务存在运行失败时,工作流状态更新为运行失败
b.子任务不存在运行失败时,存在提交失败,工作流状态更新为提交失败
c.子任务不存在运行失败时,不存在提交失败,存在上游失败时,工作流状态更新为上游失败

(3) 子任务存在取消状态时,工作流状态更新为取消

(4) 若子任务中同时存在运行失败或取消状态,工作流状态更新为失败状态

(5) 其他工作流更新为运行中状态

三、Taier1.3即将上线功能

新增功能

· ChunJun的向导模式数据源增强 hive1、hive2、hive3、sparkThrift、oracle、mysql、postgresql、sqlserver 、es7

· flink on standalone、python.shell、spark jar 、pyspark支持

· 自定义任务类型 web界面配置抽取

· windows开发环境适配

袋鼠云开源框架钉钉技术交流qun(30537511),欢迎对大数据开源项目有兴趣的同学加入交流最新技术信息,开源项目库地址:https://github.com/DTStack/Taier

原文地址:https://www.cnblogs.com/DTinsight/archive/2022/10/18/16801683.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4636.html

(0)
上一篇 2023-06-11 13:30
下一篇 2023-06-11 15:30

相关推荐

  • 在Linux云服务器上安装MySQL「终于解决」

    在Linux云服务器上安装MySQL「终于解决」MySQL是目前主流的数据库之一,且免费使用,所以适合中小企业或者是开发者使用,本文简单介绍一下在不同的Linux发行版本下的安装方法。

    2023-03-19
    164
  • win10环境下安装sql2000_mySQL安装

    win10环境下安装sql2000_mySQL安装下载mysql安装包,然后解压到你想安装的目录下,我下载的是mysql-8.0.18-winx64 Windows 上安装 MySQL 相对来说会较为简单,最新版本可以在 MySQL 下载&

    2022-12-29
    171
  • 图层水平翻转

    图层水平翻转a href=”https://beian.miit.gov.cn/”苏ICP备号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-06-26
    48
  • mysql用户管理_MySQL实战45讲

    mysql用户管理_MySQL实战45讲本文介绍 MySQL45 讲中提到的一个用户关注的案例,并记录下可行的处理方案。

    2023-04-22
    158
  • Python空字典创造指南

    Python空字典创造指南 Python是一种高级编程语言,它具有强大而灵活的数据类型和数据结构。其中,字典是一个非常有用的数据结构,它可以存储键-值对。Python中可以通过空字典来存储键-值对,这为数据的存储提供了很多灵活性。本篇文章将为您提供Python空字典创造的指南,包括如何创建空字典、如何向空字典添加键值对、如何查找字典中的键和值、如何删除键值对和如何使用空字典来处理数据。希望这篇文章能帮助您更好地使用Python的字典和空字典。

    2024-08-08
    29
  • sql视图和存储过程_oracle存储过程详解

    sql视图和存储过程_oracle存储过程详解1.视图 1.1 什么是视图? 视图实际上是一张虚拟表,其本身不存储数据。 相当于一张表或多张表的数据结果集 数据表复杂的情况下,可以把查询结果放在虚拟表中,提升效率 1.2如何创建、更新、删除视图…

    2023-04-06
    139
  • Python字典:快速查找和访问数据的利器

    Python字典:快速查找和访问数据的利器在编写Python代码时,使用正确的数据结构是至关重要的。Python提供了各种内置数据结构,包括列表、元组、集合和字典。在这些数据结构中,字典是一种非常强大的数据结构,可以用于快速查找和访问数据。

    2024-01-03
    111
  • 记录数据库连接数_access怎么连接数据库

    记录数据库连接数_access怎么连接数据库 由于隔了很长时间去使用C#时,总是忘记与数据库的连接,这里做个简单的总结(以与Sqlite数据库连接为例); 下载数据库地址(官方地址),按照自己的系统版本下载; https://www.s…

    2023-03-24
    146

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注