如果你时间充足,可以移步官网详细了解。也可以跟着本文,快速掌握配置方法,同时避免因官网不详细而跳坑!
官网: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执行后即执行,不管失败与否。在流的顶部可以配置公共参数,包括预定参数与自定义参数。如有问题,可邮件联系作者哦!