0%

Azkaban之flow2.0的使用

如果你时间充足,可以移步官网详细了解。也可以跟着本文,快速掌握配置方法,同时避免因官网不详细而跳坑!

官网:https://azkaban.readthedocs.io/en/latest/createFlows.html

首先,你需要先创建project文件夹,层级如下:

在test.project文件里,指定以flow2.0方式配置,内容如下:

1
azkaban-flow-version: 2.0

在test.flow里配置工作流,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
config:
retries: 2
retry.backoff: 30000
failure.emails: xxx@163.com
start_date: nil
stop_date: nil
flow-level-parameter: value

nodes:
- name: test
type: command
config:
command: echo "开始节点"

#Flow1流:
- name: test_flow1
type: flow
config:
prop: value
dependsOn:
- test
nodes:
- name: test_job1
type: command
config:
remark: 备注test_job1
start_dt: ${start_date}
stop_dt: ${stop_date}
command: echo 测试!

- name: test_job2
type: command
config:
start_dt: ${start_date}
stop_dt: ${stop_date}
command: echo 测试!
dependsOn:
- test_job1

- name: test_job3
type: command
config:
start_dt: ${start_date}
stop_dt: ${stop_date}
command: echo 测试!
dependsOn:
- test_job1

- name: test_job4
type: command
config:
start_dt: ${start_date}
stop_dt: ${stop_date}
command: echo 测试!
condition: all_done #设置不论test_job2 、test_job3是否成功,只要执行了,test_job4就执行。

##################################################################################################
#all_done 对应的作业状态 FAILED, KILLED, SUCCEEDED, SKIPPED, FAILED_SUCCEEDED, CANCELLED
#all_success \ one_success 对应的作业状态 SUCCEEDED, SKIPPED, FAILED_SUCCEEDED
#all_failed \ one_failed 对应的作业状态 FAILED, KILLED, CANCELLED
##################################################################################################

dependsOn:
- test_job2
- test_job3


#Flow2流:
- name: test_flow2
type: flow
config:
prop: value
dependsOn:
- test_flow1
nodes:
- name: test_job5
type: command
config:
start_dt: ${start_date}
stop_dt: ${stop_date}
command: echo 测试!

打包压缩,上传Azlaban,Graph如下:

需注意,同一个project里,可以分出多个文件夹,对应多个workflow。但同一个workflow,只允许出现一个.flow文件。在.flow文件里,可以配置多个流。在这个例子中有两个流, 流内的job只能依赖于同一个流的job,而流只能依赖于上一个流或者独立的job,不能依赖于上一个流内的job。流与流,job与job间可以配置条件依赖,如本例中的job4,当job2/job3执行后即执行,不管失败与否。在流的顶部可以配置公共参数,包括预定参数与自定义参数。如有问题,可邮件联系作者哦!