Azkaban--使用实战--多 job 依赖调度 | 学习笔记

简介: 快速学习 Azkaban--使用实战--多 job 依赖调度

开发者学堂课程【Azkaban 大数据调度系统课程精讲 Azkaban--使用实战--多 job 依赖调度学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/721/detail/12880


Azkaban--使用实战--多 job 依赖调度


多 job 依赖调度:

下面学习 job 依赖调度设置,在执行工作流的时候,很多场景需要设置多个 job 或多个模块,这些 job 存在非常明显的依赖关系,

比如做一件事分为 A,B,C 三个步骤,先 A 后 B 最后 C 的执行顺序,这样拥有依赖性的关系,在 Azkaban 中如下配置:

具体操作如下

整个核心的配置就是在需要配置依赖的 job 中,添加一行 dependencies=名字,根据名字去寻找当前工程叫这个名字的 job,并必须先执行,之后再执行其他 job,这样就形成一个依赖关系。

接下来演示具体依赖调度的配置操作步骤:

1、打开参考资料——Azkadan——job 配置模板——foobar

2、创建有依赖关系的多个 job 描述文件

接下来打开 job 配置模板——foobar 文件夹,文件夹下有三个 job 文件需要调度,分别是:foo.job 、bar.job 、itcast.job。

image.png

(1) :在foo.job 文件中

type=command  //类型是 command 命令

command=echo foo//command 命令是用来输出一个字符串 foo

(2) :在 bar.job 文件中命令  

type=command //类型是command命令

dependencies=foo //当执行 bar.job ,会做一个判断依赖,判断名字为 foo 的 job 是否执行完毕,(即文件中的foo.job 是否执行完毕)如果 foo.job 执行完毕,后面的 job 继续执行,如果没有执行完毕,后面的 job 不再继续执行,这是一个配置依赖的核心选项

command=echo bar//command 命令是用来输出一个字符串 bar

(3) :在 itcast.job 这个脚本中

type=command //类型是 command 命令

dependencies=bar//当执行 itcast.job ,会做一个判断依赖,判断名字为 bar 的 job 是否执行完毕,(即文件中的bar.job 是否执行完毕)如果 bar.job 执行完毕,后面的 job 继续执行,如果没有执行完毕,后面的 job 不再继续执行

command=echo itcast //command 命令是用来输出一个字 itcast

当这三个配置文件描述好之后,打包成一个压缩包,它们之间就形成

了一种首尾相连的依赖关系:先执行 foo.job,然后执行 bar.job,

最后执行 itcast.job 的关系。

3、将所有 job 资源文件打包成 zip 文件

选中 foo.job 、bar.job 、itcast.job这三个文件右键选择加到压缩档选项,之后选择 zip 格式。

4、通过 Azkaban 的 web 管理平台创建 project 并上传 job 压缩包

打开浏览器 http://node-2:8443/index.进入到 Azkaban 新建一个 web工程,在 Azkadan 强调一个 project 对应一个 zip 的项目压缩包。

(1) :首先创建 project

点击 Azkaban 界面的 Create Project,创建这个工程

image.png

(2):上传 zip 包

当前这是一个空工程,点击 Upload 进行执行操作,选择之前依赖的压缩包 dependence.zip 上传到工程里,这样就完成了 zip 上传。

点击 flows 底下的文件,发现如果配置正确的话,就会解析形成工作流,如果工程模块更加复杂,就可以先执行 A,B依赖于 A,C  依赖于 A,D 依赖于 B,D 依赖于 C,就可以形成非常漂亮的工作流。

只要把 dependencies 这个属性描述到位,它们之间就形成了一种首尾相连的依赖关系。

image.png

5、工作流的执行与调度

那么配置且上传好文件,接下来就是针对工作流的执行与调度。

点击 Schedule/Execute.Flow

这个工程有两种选择:

1、想要立即手动执行获得效果,选择 Execute。

2、想要配置周期性的任务调度,选择 Schedule。

先点击 Execute,之后点击 Continue,立即执行。观察一下效果:执行的结果是否正确(是否形成依赖关系:先执行foo,再执行 bar,最后执行 itcast),发现效果上并没有形成依赖关系,在一瞬间完成执行,因为这三个 job 的配置极其简单,它们没有做过多的任务,都是输出一句话。

image.png

image.png

下面验证这三个不是同一时间完成而是相互依赖执行的:

点击 Job List,描绘工作的列表,有三个 job,分别是 foobaritcast

类型都是 command,根据 Timeline ,发现这三个 job 绝对不是同时执行的,只不过每个执行的时间都很快,所以导致三个文件在一瞬间执行完成。根据 Timeline 的曲线,明确先执行 foo.job,然后执行 bar.job,最后执行 itcast.job的关系。

当点击 每个 job Detail ,查看每个 job 执行结果的相关信息,点击 foo Detail,发现 Starting job fool,最后输出 foofoo 正是 command=echo foo 打印出来的结果,这里做的是非常简单的任务,同样,对于其他的 job,通过此方法也可以验证执行结果的是否正确。

以上就完成了 job 依赖调度。

image.png

image.png

整个依赖的核心:dependencies 的一个选项,根据 dependencies 后面跟随的名字去寻找当前工程叫这个名字的 job的配置文件,如果有,就形成一种依赖关系,否则就会解析出错。

以上就是 Askaban 针对多 job 依赖的调度配置。

相关文章
|
3月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
222 0
|
SQL 分布式计算 Hadoop
Azkaban--使用实战--hive 调度 | 学习笔记
快速学习 Azkaban--使用实战--hive 调度
728 0
Azkaban--使用实战--hive 调度 | 学习笔记
|
3月前
|
资源调度 关系型数据库 数据库
实时计算 Flink版产品使用合集之flink-cdc.sh xx.yaml提交到yarn 发现没有启动task manager的,怎么处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
负载均衡 Java 调度
xxl-job与其他调度框架比较与部署
xxl-job与其他调度框架比较与部署
xxl-job与其他调度框架比较与部署
|
运维
Elastic Job进阶--作业是如何被立即触发的
Elastic Job进阶--作业是如何被立即触发的
|
SQL 分布式计算 资源调度
Spark on Yarn Job的执行流程简介
2017-12-19-Hadoop2.0架构及HA集群配置(1) 2017-12-24-Hadoop2.0架构及HA集群配置(2) 2017-12-25-Spark集群搭建 2017-12-29-Hadoop和Spark的异同 2017-12-28-Spark-HelloWorld(Spark开发环境搭建)
|
监控 数据可视化 Java
XXL-Job启动源码详解
XXL-Job启动源码详解
1039 0
|
大数据 调度 开发者
Azkaban--使用实战--定时任务调度 | 学习笔记
快速学习 Azkaban--使用实战--定时任务调度
1488 0
Azkaban--使用实战--定时任务调度 | 学习笔记
|
分布式计算 Hadoop Java
Apache Oozie-- 实战操作--调度 mapreduce 程序|学习笔记
快速学习 Apache Oozie-- 实战操作--调度 mapreduce 程序
117 0
Apache Oozie-- 实战操作--调度 mapreduce 程序|学习笔记
|
XML Shell 调度
Apache Oozie-- 实战操作--集成 hue- 定时调度配置|学习笔记
快速学习 Apache Oozie-- 实战操作--集成 hue- 定时调度配置
474 0
Apache Oozie-- 实战操作--集成  hue- 定时调度配置|学习笔记