论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
开源交流丨任务or实例 详解大数据DAG调度系统Taier任务 ...
开源交流丨任务or实例 详解大数据DAG调度系统Taier任务调度 ...
曂沅仴駦
金牌会员
|
2022-9-16 17:24:11
|
显示全部楼层
|
阅读模式
楼主
主题
893
|
帖子
893
|
积分
2679
课件获取:关注公众号 “数栈研习社”,后台私信 “Taier” 获得直播课件
视频回放:
点击这里
ChunJun 开源项目地址:
github
丨
gitee
喜欢我们的项目给我们点个__ STAR!STAR!!STAR!!!(重要的事情说三遍)__
技术交流钉钉 qun:30537511
前言
在分享之前,先为大家介绍一下任务和实例的关系。任务指的是我们在任务开发界面上去创建的任务,比如Spark任务、SparkSQL任务、数据同步任务等,这些任务在开发过程中是静态的脚本,当被提交到计算节点去执行时,被执行的过程我们把它抽象成实例。举一个简单的例子来说明:比如我们写完一个Java的类然后把它打包成Jar包,其实这个Jar包就是一个静态类,当我们执行Jar包时,这个过程我们会把它抽象成一个实例,这就是任务与实例的关系。
Taier实例生成
1、Taier实例类型
首先我们来看一下Taier实例的类型,在Taier中实例主要有3种类型:
周期实例:T+1生成,完整依赖
补数据实例:立即生成,局部依赖
临时运行实例:立即生成,无依赖
● 周期实例
周期实例是指在前一天生成的当天实例(T+1),拥有一个完整独立的实例依赖体系,也就是任务和任务之间形成的完整的DAG图。周期实例实际上指的是离线任务,因为实时任务并无上游依赖关系。
上图就是配置任务之间依赖的地方,任务和任务之间会形成一个完整DAG(Direct Acyclic Graph)图,中文名叫有向无环图,从图中任意一个节点出发,根据方向无法回到原节点的图就叫做有向无环图。
注意: 提交任务的时候回判断是否成环。
而实例依赖可分为两种:父子依赖关系和自依赖关系。
● 父子依赖关系
父子关系可以理解为不同的任务依赖:例如任务A运行需要任务B的运行结果,这个时候任务A就需要依赖任务B,那么B任务就是A任务父任务。
● 自依赖关系
自依赖关系可以理解为相同任务的不同周期依赖:例如 任务A是一个小时任务,0点开始执行,10点结束,每小时运行一次,那么任务A在0点合10点这个时间段上需要执行10次,如果说任务A每次执行都需要上一个周期执行结束,那么任务A就是一个自依赖任务。
除了上述两种依赖任务,还有跨周期依赖,不同周期任务的父子依赖关系:子任务会找到父任务最近的执行的一个周期实例依赖。
● 补数据实例
补数据实例是用户通过页面或者调用接口触发生成实例,仅有局部的依赖关系且和周期实例的依赖关系相互独立互不影响,实例依赖关系和周期实例一致。
注意:补数据是生成局部的DAG图,例如 1、2、3任务关系是 1->2->3,在页面上选择1和3任务进行补数据,那么1,2,3任务都会生成,但是最终结果只会运行1和3任务,2任务不运行。
● 临时运行实例
临时运行实例可以分成两种离线和实时。
离线任务:用户可以直接运行任务生成实例,实例没有依赖关系。
实时任务:实时任务没有周期,上下游依赖这一概念,所以所以的实时实例都是临时运行的。
Taier周期实例生成
接下来我们来看一下Taier周期实例的生成。
上图为Taier实例的整体生成图,Taier主节点在启动的时候会开启一个定时器,定时器会不停的去判断当日的实例是否已经生成,如果没有生成就会触发事件给CycleJobBuilder生成实例,再通过JobDependency封装实例之间的依赖关系。
其中CycleJobBuilder是指用于生成周期实例,扫描数据
库任务表并且获取zk上所有的taier节点,把封装后的实
例分配到每一台Taier节点上;JobDependency是用于生成job之间的依赖关系。
接下来为大家介绍下Taier的主从选举。
在application.properties文件中配置zk:
nodeZkAddress=${ZK_HOST}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
曂沅仴駦
金牌会员
这个人很懒什么都没写!
楼主热帖
ICA:1靶场
教你如何解决T+0的问题
架构设计基础设施保障IaaS之计算篇 ...
JS中的Set与Map
Excel文件校验
超融合技术在银行业的应用及实施中的关 ...
快速入门python看过的一些资料 ...
浅析VMI(供应商库存管理)的实施条件 ...
国内IT硬件如何铸就新辉煌? ...
开源一款监控数据采集器,啥都能监控 ...
标签云
存储
服务器
快速回复
返回顶部
返回列表