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: jobA
type: command
config:
command: sh a.sh
- name: jobB
type: command
config:
command: sh b.sh
- name: jobC
type: command
config:
command: sh c.sh
- name: jobD
type: command
config:
command: echo "jobD 123 DD BB DD BB"
dependsOn:
- jobA
- jobB
- jobC
condition: ${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%)
网友评论