Azkaban--图解实现依赖调度

0、界面上的功能

在这里插入图片描述

1、开发规则

step1:需要创建一个project

任何一个工作流都有独立的project进行管理【权限、运行】

step2:需要开发一个工作流

一个工作流里可以有多个job,也可以只有一个job,job就是一个程序

  • 工作流的开发规则
Select the archive file of your workflow files that you want to upload. 
Currently Azkaban only supports *.zip files. 
The zip should contain the *.job files and any files needed to run your jobs. 
Job names must be unique in a project.

flow.zip
   first.job
   second.job
   third.job
   fourth.job
  • 一个工作流就是一个.zip格式的压缩文件
    .- zip文件中包含这个工作流的所有job,每个job是一个.job结尾的文件
  • job的名称在一个工作流中不允许重复
    tips:zip文件打开,里面不能包含目录,打开的第一层就是.job文件
  • job文件如何开发?
    • 使用properties格式进行开发.job文件中,最常用以及最普遍的方式
type=command
command={Linux的一条命令}
  • command类型的job
    • 用于执行Linux中的一条命令
  • 为什么?
    所有类型的程序都可以通过Linux命令执行
    • Hadoop程序:yarn jar xxx.jar mainclass args
    • Hive程序:hive -f xxx.sql
    • Sqoop程序:sqoop --options-file
    • Flume:flume-ng agetn -c -f -n
    • Spark程序:spark-submit –jar xxxx.jar –class ……

step3:打包上传

将所有的job进行打包成zip文件,上传到Project中

step4:在project中运行

2、job开发测试

需求:运行MapReduce程序实现wordcount

step1:创建一个project

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

step2:开发一个工作流,只有一个程序

  • 创建一个.job文件,编辑job的功能
type=command
command=yarn jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar wordcount /wordcount/input /wordcount/output8
  • 将工作流中所有的job文件打成zip文件在这里插入图片描述

step3:上传这个工作流到Project中

在这里插入图片描述
在这里插入图片描述

Step4:运行这个工作流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、工作流开发测试

需求:实现效果如下图
在这里插入图片描述

  • 如何能决定依赖关系,就是顺序呢?
    • dependencies:指定当前job依赖于哪个job

step1:创建project

在这里插入图片描述

step2:开发工作流

  • joba
type=command
command= flume-ng agent ……
  • jobb
type=command
dependencies=joba
command= hdfs dfs -put 
  • jobc
type=command
dependencies=joba
command= yarn jar 
  • jobd
type=command
dependencies=joba
command= hive -f 
  • jobe
type=command
dependencies=jobb,jobc,jobd
command= sqoop --option-file
  • dependencies:用于定义依赖关系,也就是执行的先后顺序
  • tips:如果你想让你的程序能运行Flume、Sqoop、Hive,你必须保证你的所有的Executor节点都有这些工具

step3:上传

在这里插入图片描述
在这里插入图片描述

step4:运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、加入子流:subflow

需求:实现类似于官网效果
在这里插入图片描述

  • 如果我的工作流中包含子流怎么办?
    • type=flow
    • dependencies=依赖的job名称
    • flow.name:指定工作流的名称使用最后一个job的名称作为工作流的名称

step1:创建project

在这里插入图片描述

step2:开发工作流

  • 工作流1在这里插入图片描述
  • 工作流2在这里插入图片描述
  • 关系:jobb就是工作流2
  • jobb
type=flow
dependencies=joba
flow.name=subflow
  • 任何一个工作流,使用最后一个job的名称作为工作流的名称

step3:上传

在这里插入图片描述

step4:运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值