1、基本原理
1)父 Job 将参数写入 JOB_OUTPUT_PROP_FILE 环境变量所指向的文件
2)子 Job 使用 ${jobName:param}来获取父 Job 输出的参数并定义执行条件
2、支持的条件运算符
1)== 等于
2)!= 不等于
3)> 大于
4)>= 大于等于
5)< 小于
6)<= 小于等于
7)&& 与
8)|| 或
9)! 非
3、base.project
[alex@hadoop102 azkaban]$ vim jobs/base.project
azkaban-flow-version: 2.0
4、base.flow
[alex@hadoop102 azkaban]$ vim jobs/base.flow
nodes:- name: jobAtype: commandconfig:command: sh a.sh- name: jobBtype: commandconfig:command: sh b.sh- name: jobCtype: commandconfig:command: sh c.sh- name: jobDtype: commandconfig:command: echo "jobD 123 DD BB DD BB"dependsOn:- jobA- jobB- jobCcondition: ${jobA:aaa}=="AAA" && ${jobB:bbb}=="BBB" && ${jobC:ccc}=="CCC"
condition: ${jobA:aaa}=="AAA" && all_success
5、a.sh
#!/bin/bash
echo '{"aaa":"AAA"}' > $JOB_OUTPUT_PROP_FILE
6、b.sh
#!/bin/bash
echo '{"bbb":"BBB"}' > $JOB_OUTPUT_PROP_FILE
7、c.sh
#!/bin/bash
echo '{"ccc":"CCC"}' > $JOB_OUTPUT_PROP_FILE
8、打成zip包
[alex@hadoop102 jobs]$ zip base.zip base.project base.flow a.sh b.sh c.sh adding: base.project (stored 0%)adding: base.flow (deflated 62%)adding: a.sh (stored 0%)adding: b.sh (stored 0%)adding: c.sh (stored 0%)