Azkaban Condition Flow (条件工作流) 使用简介
本文上接《Azkaban Flow 2.0 使用简介》,对Azkaban Condition Flow (条件工作流) 做简单介绍
目录
条件工作流 介绍
作用
条件工作流,允许用户根据条件指定是否运行某些作业
使用方式
- 用户可以根据运行时参数(如先前作业的输出)运行或禁用某些作业
- Azkaban提供了一些预定义的宏,用户可以直接使用,用于比较父作业的运行状态来运行或禁用某些作业
支持的运算符
运算符 | 含义 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
&& | 与 |
|| | 或 |
! | 非 |
作业运行时参数的条件:
- 使用 ${jobName:param} 来定义作业运行时参数的条件
- “:” 用于分隔jobName和参数
- job运行时,使用参数与条件中的字符串或数字进行比较
- 用户需要事先将参数的值写入 $JOB_OUTPUT_PROP_FILE
支持的预定义宏
预定义宏 | 含义 |
---|---|
all_success | 默认值,所有父job全部成功 |
all_done | 所有父job全部完成 |
all_failed | 所有父job全部失败 |
one_success | 至少有一个父job成功 |
one_failed | 至少有一个父job失败 |
每个预定义宏的相应作业状态:
预定义宏 | 作业状态 |
---|---|
all_done | FAILED, KILLED, SUCCEEDED, SKIPPED, FAILED_SUCCEEDED, CANCELLED |
all_success / one_success | SUCCEEDED, SKIPPED, FAILED_SUCCEEDED |
all_failed / one_failed | FAILED, KILLED, CANCELLED |
一些有效的条件 举例
${JobA:param1} == 1 && ${JobB:param2} > 5
one_success
all_done && ${JobC:param3} != "foo"
(!{JobD:param4} || !{JobE:parm5}) && all_success || ${JobF:parm6} == "bar"
条件工作流 实例
- 新建两个文件:flow20.project 和 .flow 为扩展名的文件
- 打包zip & 上传zip & 运行
详细过程略(可参见上一篇博文中的“简单的Flow”一节),.flow 文件举例:
# 文件名:condition_2flow.flow
nodes:
- name: JobA
type: command
config:
command: sh /azkaban/job/write_to_props.sh
- name: JobB
type: command
dependsOn:
- JobA
config:
command: echo "This is JobB."
condition: ${JobA:param1} == "AAA"
- name: JobC
type: command
dependsOn:
- JobA
config:
command: echo "This is JobC."
condition: ${JobA:param1} == "BBB"
- name: JobD
type: command
dependsOn:
- JobB
- JobC
config:
command: echo "This is JobD."
condition: one_success
/azkaban/job/write_to_props.sh 文件的内容:
echo '{"param1":"1"}' > $JOB_OUTPUT_PROP_FILE
Condition Flow在web页面中的显示是如下图的样子

- 实例中“JobC”的condition不成立,所以不会执行
- “JobD”的condition是只要“JobB”和“JobC”有一个成功即可执行
所有上述实例最终的执行结果为:“JobC”不执行,其他均执行成功。如下图:

附录
官方文档
https://azkaban.readthedocs.io/en/latest/conditionalFlow.html#
例子源码
https://github.com/remainsu/azkaban_job
Azkaban Condition Flow (条件工作流) 使用简介的更多相关文章
- Azkaban Flow 2.0 使用简介
官方建议使用Flow 2.0来创建Azkaban工作流,且Flow 1.0将被弃用 目录 目录 一.简单的Flow 1. 新建 flow20.project 文件 2. 新建 .flow 文件 3. ...
- 工作流调度器azkaban(以及各种工作流调度器比对)
1:工作流调度系统的作用: (1):一个完整的数据分析系统通常都是由大量任务单元组成:比如,shell脚本程序,java程序,mapreduce程序.hive脚本等:(2):各任务单元之间存在时间先后 ...
- Activiti工作流引擎简介
Activiti工作流引擎简介 一.概述 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活 ...
- python笔记11-多线程之Condition(条件变量)
前言 当小伙伴a在往火锅里面添加鱼丸,这个就是生产者行为:另外一个小伙伴b在吃掉鱼丸就是消费者行为.当火锅里面鱼丸达到一定数量加满后b才能吃,这就是一种条件判断了. 这就是本篇要讲的Condition ...
- 工作流--JBPM简介及开发环境搭建
一. 工作流简介 项目中不断的接触工作流,点点滴滴积累了一些,下面把一些学习到的东西整理记录下来. 工作流一般的适用场景:公文流转.行政审批.订单处理.产品研发.制造过程等.用专业一点的语言来描述工作 ...
- activiti工作流框架简介
常见的工作流框架:activiti, JBPM, OSWorkflow activiti框架基于23张基础的表数据, 基于Mybatis操作数据库. JBPM框架基于18张基础的表数据, 基于hibe ...
- Java代码实现对Azkaban的Flow进行设置定时
代码如下: public class CurlToAzkaban{ public static void scheduleExecute(String flow, String cronExpress ...
- python多线程之Condition(条件变量)
#!/usr/bin/env python # -*- coding: utf-8 -*- from threading import Thread, Condition import time it ...
- 条件随机场CRF简介
http://blog.csdn.net/xmdxcsj/article/details/48790317 Crf模型 1. 定义 一阶(只考虑y前面的一个)线性条件随机场: 相比于最大熵模型的输 ...
随机推荐
- 图像滤镜艺术---PS图像转手绘特效实现方案
原文:图像滤镜艺术---PS图像转手绘特效实现方案 手绘效果实现方案 本文介绍一种PS手绘效果的实现方案,PS步骤来自网络,本文介绍代码实现过程. 整体看来,虽然效果还是有很大差异,但是已经有了这种特 ...
- 你遗忘的都在这里—iOS常用类型方法笔记
这些都是项目中常用但又常忘的方法,与大家分享一下. 一.NSString 创建字符串. NSString *astring = @"This is a String!"; 创建空 ...
- ARTS 1.21 - 1.25
每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目:3Sum Closest 解题过 ...
- 无法删除 NTFS 盘上的文件或文件夹(对Windows文件的各种情况有比较详细的描述)
简介 本文介绍您可能无法删除 NTFS 文件系统卷上的文件或文件夹的原因,以及如何分析造成此问题的不同原因从而解决此问题. 更多信息 注意:在内部,NTFS 将文件夹作为特殊类型的文件进行处理.因此, ...
- Dependency Injection 筆記 (4)
续上集未完的相关设计模式... (本文摘自電子書:<.NET 依賴注入> Composite 模式 延续先前的电器比喻.现在,如果希望 UPS 不只接计算机,还要接电风扇.除湿机,可是 U ...
- jquery选择器集锦
一,基本选择器: 1 2 3 4 $("#txtName"); $("#txt\\#b");//获取id为 txt#b的元素,\\为转义符 $(" ...
- Hadoop集群(第1期)CentOS安装配置
1.准备安装 1.1 系统简介 CentOS 是什么? CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本.每个版本的 CentOS 都会 ...
- asp.net core 系列之Startup
这篇文章简单记录 ASP.NET Core中 ,startup类的一些使用. 一.前言 在 Startup类中,一般有两个方法: ConfigureServices 方法: 用来配置应用的 servi ...
- Spring源码阅读-IoC容器解析
目录 Spring IoC容器 ApplicationContext设计解析 BeanFactory ListableBeanFactory HierarchicalBeanFactory Messa ...
- C# 简单TCP协议
namespace TCPServer { class Program { static void Main(string[] args) { ;//端口 TcpClient tcpClient;// ...