拒絕抄襲,從我做起,可以借鑑,必有說明
今天學習azkaban的condition判斷
新建一個.flow文件我是condition.flow
nodes:
- name: JobA
type: command
config:
command: bash /home/devuser/chenchi/azkaban.sh
- name: JobB
type: command
dependsOn:
- JobA
config:
command: echo "This is JobB."
param1: "AAA"
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
在建一個.project文件我是condition.project文件,備註我是azkaban3.81版本
azkaban-flow-version: 2.0
服務器上
[devuser@node04 ~/chenchi]$ cat azkaban.sh
echo '{"param1":"AAA"}' > $JOB_OUTPUT_PROP_FILE
[devuser@node04 ~/chenchi]$
這裏我說明下 $JOB_OUTPUT_PROP_FILE 這個不要改成xx.txt這種。。。。
condition.flow 裏的jobB和C的condition裏獲取的${jobA:param1}就是這裏的json值
把兩個文件達成zip包
上傳到azkaban後執行
還有一種說是嵌入式https://my.oschina.net/remainsu/blog/3072763
1、新建一個xx.flow和一個xx.project
2、打包zip上傳
3、exec
config:
param.test: param_test
nodes:
- name: jobC
type: command
config:
command: echo ${param.test} "This is jobC, embedded on embedded_flow."
dependsOn:
- embedded_flow
- name: embedded_flow
type: flow
config:
param.flow.test: param_flow_test
nodes:
- name: jobB
type: command
config:
command: echo "This is jobB."
dependsOn:
- jobA
- name: jobA
type: command
config:
command: echo ${param.flow.test} "This is jobA."