关于大数据:一文读懂开源大数据调度系统Taier12版本新增的工作流到底是什么

38次阅读

共计 1609 个字符,预计需要花费 5 分钟才能阅读完成。

一、什么是工作流?

在论述什么是工作流之前,先说一下工作流和一般工作的区别,在于依赖视图。

一般工作自身他只会有本人的 dag 图,依赖视图是无边界的,不可控的,而工作流则是把整个工作流都展现进去,是有边界的,可控的,这是工作流的劣势。上面为大家介绍工作流的相干性能:

01 工作流—性能介绍

● 虚构节点

虚构节点,它是不产生任何数据的空跑节点(即调度到该节点时,零碎间接返回胜利,不会真正执行、不会占用资源或阻塞上游节点运行),比如说工作并行执行,那么就会用到虚构节点。

● 周期生成

指调度零碎依照调度配置主动定时运行的工作。

● 补数据运行

当业务变更,能够应用补数据性能。如批改了某个工作的代码,可将本月的数据依照新的代码从新跑一遍,立刻生成所需数据。

● 调度属性

工作流中的子工作依赖于父工作的周期调度属性,父工作批改后,子工作同步批改,以工作流的周期调度属性作为各个子节点的周期调度工夫。

● 工作流所在目录

批改工作流目录同步批改工作流下的子工作目录。

02 工作流—依赖成环

具体实现:

工作实现依赖的关系,key 为以后节点,value 为该节点的所有父节点 Map < long list> nodeMap。

遍历 nodeMap,以此遍历单汇合中的每一个节点。每遍历一个新节点,就从头查看新节点之前的所有节点,用新节点和此节点之前所有节点顺次做比拟。如果发现新节点和之前的某个节点雷同,则阐明该节点被遍历过两次,链表有环。如果之前的所有节点中不存在与新节点雷同的节点,就持续遍历下一个新节点,持续反复方才的操作。

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

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

01 Taier—周期实例生成

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

● CycleJobBuilder

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

● JobDependency

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

02 Taier—调度流程

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

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

正文完
 0