1.使用步骤

1)创建.project文件: azkaban-flow-version:2.0

2)创建.flow文件

3)压缩成.zip文件,上传

注意:flow文件是yaml格式

大小写敏感

通过缩进来表达层次,严禁使用\t

属性名:后面跟一个空格

2.案例:

1.hello word

nodes:
- name: Job名称
type: command<job类型[command/javaprocess/flow]>
config:
command: echo "...."/sh xx.sh

2.作业依赖[dependsOn配置作业的依赖关系]

nodes:
- name: A
type: command
config:
command: echo "A"
- name: B
type: command
config:
command: echo "B"
dependsOn:
- A

3.内嵌工作流

nodes:
- name: A
type: flow #flow代表当前Job就是一个工作流
#config:
# command: echo "A" 当前不会打印,因为只有type为command才会执行命令
nodes:
- name: B
type: command
config:
command: echo "A.B"

4.全局配置 [在开头通过config进行配置,后续可以通过${属性名}来引用]

config:
属性名1: 属性值
属性名2: 属性值
nodes:
- name: A
type: command
config:
command: echo "${属性名1} .."

5.自动重试[retries代表重试的次数,retry.backoff代表重试的时间间隔]

nodes:
- name: A
type: command
config:
command: echo "${属性名1} .."
retries: 3
retry.backoff: 5000 #毫秒

6.执行java程序

nodes:
- name: A
type: javaprocess
config:
java.class: com.atguigu.XXX
Xmx: 1024M
Xms: 1024M
# type:javaprocess [代表执行java程序]
# java.class: [执行哪个java类,类中必须要有main方法]
# Xms: [代表启动时的内存容量大小]
# Xmx: [代表执行时的内存的最大容量大小]
# 一般Xms要与Xmx设置一致,防止内存的抖动

7.条件工作流

7.1 根据job的参数进行判断
【在脚本中将json字符串写到azkaban内部的变量<$JOB_OUTPUT_PROP_FILE>中,后续通过${Job名称:属性名}】
在写入$JOB_OUTPUT_PROP_FILE变量的时候,要在脚本的最后一行写入
nodes:
- name: A
type: command
config:
command: sh a.sh
- name: B
type: command
config:
command: echo "B"
condition: ${A:属性名} == "属性值"

a.sh内容

##! /bin/bash
...
echo '{"属性名":"属性值"}' >> $JOB_OUTPUT_PROP_FILE
7.2 azkaban内部宏
nodes:
- name: A
type: command
config:
command: sh a.sh
- name: C
type: command
config:
command: sh c.sh
- name: B
type: command
config:
command: echo "B"
condition: ${A:属性名} == "属性值" && all_success
dependsOn:
- A
- C
#all_done: 依赖任务全部完成[kill、failed、success..都代表完成]
#all_success: 依赖的任务必须全部success
#all_failed: 依赖的任务必须全部failed
#one_failed: 依赖的任务必须要求其中一个failed
#one_success: 依赖的任务必须要求其中一个success

Azkaban(二)【WorkFlow案例实操】的更多相关文章

  1. 新硬盘挂载-fdisk+mount案例实操

    新硬盘挂载-fdisk+mount案例实操 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 现在很多服务器都支持热插拔了,当有新的硬盘插入到服务器上我们需要将其分区,格式化,然后挂载 ...

  2. Kafka集群优化篇-调整broker的堆内存(heap)案例实操

    Kafka集群优化篇-调整broker的堆内存(heap)案例实操 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看kafka集群的broker的堆内存使用情况 1>. ...

  3. Python相关分析—一个金融场景的案例实操

    哲学告诉我们:世界是一个普遍联系的有机整体,现象之间客观上存在着某种有机联系,一种现象的发展变化,必然受与之关联的其他现象发展变化的制约与影响,在统计学中,这种依存关系可以分为相关关系和回归函数关系两 ...

  4. 号外号外:9月13号《Speed-BI云平台案例实操--十分钟做报表》开讲了

    引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中?         本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中 ...

  5. Hive中的数据类型以及案例实操

    @ 目录 基本数据类型 集合数据类型 案例实操 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它 ...

  6. (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM

    接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...

  7. 【windows 访问控制】十二、C#实操 主体 System.Security.Principal 案例

    案例1.主体(包含用户和组)和标识(用户名)的使用. PrincipalPolicy枚举:主体类型 分为window主体.未认证的主体和未分配主体GenericPrincipal.GenericIde ...

  8. 在CentOS7.6上安装自动化运维工具Ansible以及playbook案例实操

    前言 Ansible是一款优秀的自动化IT运维工具,具有远程安装.远程部署应用.远程管理能力,支持Windows.Linux.Unix.macOS和大型机等多种操作系统. 下面就以CentOS 7.6 ...

  9. C#多线程同步案例实操

    好久没有写博客了,为了养成学习的习惯,培养积极年轻的心态,又回到了博客园这个平台继续撸起时隔多年未光顾的空间. 项目需求: 实现一个简单的获取始发目的耗时.距离,将结果输出表格. 方案思路: 通过多线 ...

随机推荐

  1. 转:汇编中EBP寄存器和ESP寄存器的区别

    EBP和ESP都是汇编中关于指针的寄存器.但是定义不同: (1)ESP:栈指针寄存器(extended stack pointer),其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶.(2 ...

  2. linux下使用shell命令通过wpa_cli控制wpa_supplicant连接wifi

    最近在调试wifi,已经把wpa_supplicant 工具编译打包好了,为了测试wif驱动及wifi模块是否ok,需要用shell命令临时启动wifi服务连接wifi热点测试. 首先板子启动用ifc ...

  3. Filter学习笔记

    博客园的编辑器太丑了,所以我换用了别的Markdown编辑器,并用图片形式上传.

  4. 使用psftp向服务器上传文件

    老师刚才说想用psftp上传文件到服务器,我之前没听过,学了一下,总结下.我们用PSFTP主要也就是上传和下载. PSFTP是PuTTY SFTP客户端,用于本地与服务器间安全传输文件(使用SSH连接 ...

  5. kvm 安装 windows 虚拟机

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211108848062/ 相关话题:https://ww ...

  6. Django 中间件 详细总结

    一.什么是中间件 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影 ...

  7. Linux基本命令学习-文件基本操作1

    关机重启 shutdown -h now #立即关机 shutdown -h 5 # 5秒后关机 #重启 shutdown -r now #立即重启 reboot halt #重启 文件相关 系统目录 ...

  8. 大白话讲解如何解决HttpServletRequest的请求参数只能读取一次的问题

    大家在开发过程中,可能会遇到对请求参数做下处理的场景,比如读取上送的参数中看调用方上送的系统编号是否是白名单里面的(更多的会用request中获取IP地址判断).需要对请求方上送的参数进行大小写转换或 ...

  9. 服务端渲染技术NUXT

    什么是服务端渲染 ​ 服务端渲染又称SSR (Server Side Render),是在服务端完成页面的内容,而不是在客户端通过AJAX获取数据. 服务器端渲染(SSR)的优势主要在于:更好的 SE ...

  10. c++学习笔记4(函数重载)

    一个或多个函数,名字相似,然而参数个数或类型不同,这个叫做函数重载 优点:可以使函数的命名变得简单