Azkaban---基础

本文介绍了YAML语言的基础语法和在Azkaban工作流管理系统中的应用。通过HelloWorld案例展示了如何定义简单的工作流程;作业依赖案例说明了如何设置任务间的依赖关系,确保执行顺序;自动失败重试案例解释了Azkaban如何处理任务失败并进行自动重试。同时,也介绍了手动重试任务的方法,提供了详细的步骤。
摘要由CSDN通过智能技术生成
  • YAML 语言
  • 基础案例
    • Hello World 案例
    • 作业依赖案例
    • 手动失败重试案例

YAML 语言

基本语法
大小写敏感。
使用缩进表示层级关系,但是只能使用空格来缩进。

支持的数据结构
对象:键值对的集合
数组:一组按次序排列的值
纯量:单个的、不可再分的值

对象

name: namename

数组

- name: zhangsan
- name: wangwu
  age: 15
# 有一个数组两个元素,[{name: zhangsan},{name: wangwu,age: 15}]

纯量

wangwu

Hello World 案例

编写规划文件

azkaban.project
指定规划文件使用的版本

azkaban-flow-version:  2.0

该文件的内容是确定的,冒号后紧跟两个空格

*.flow
描述工作流程文件,是一个yaml格式的文件

nodes:
 - name: job_name
   type: command
   config:
     command: echo "Hello World"

该文件的解析规则是先找到每个节点处理的任务流程每个任务流程是一个数组,将数组的每一个元素取出生成单独的一个任务

将两个文件打成一个压缩包,包名不含中文字符

创建任务及运行任务

在web页面中创建一个任务,填写任务名和描述。

将压缩包上传至azkaban

解析完成后,执行任务

等待任务列表反馈任务执行成功

在其log中可以看到echo


作业依赖案例

编写一个.flow文件

nodes:
 - name: jobA
   type: command
   config:
     command: echo "A"
 - name: jobB
   type: command
   config:
     command: echo "B"
 - name: jobC
   type: command
   dependsOn:
     - jobA
     - jobB
   config:
     command: echo "C"

dependsOn: 作业依赖,即当前作业需要哪些或哪个作业完成后才能执行

将flow文件和project文件打包后上传至azkaban,并执行任务,在任务的日志中可以看到,先执行了A和B,再执行C


自动失败重试案例

失败后系统会按照设定的重试次数和重试时间间隔自动重试

nodes:
  - name: jobA
    type: command
    config:
      command: sh /not_exists.sh
      retries: 3
      retry.backoff: 3000

retries: 失败后最多还会尝试的次数
retry.backoff: 间隔多少ms尝试一次

手动失败重试案例

在任务失败后,可以手动从失败位置,或之前的某个位置重新执行后续作业。

nodes:
 - name: jobA
   type: command
   config:
     command: echo "A"
     
 - name: jobB
   type: command
   dependsOn: 
     - jobA
   config:
     command: echo "B"
     
 - name: jobc
   type: command
   dependsOn: 
     - jobB
   config:
     command: echo "C"
     
 - name: jobD
   type: command
   dependsOn: 
     - jobc
   config:
     command: echo "D"
     
 - name: jobE
   type: command
   dependsOn: 
     - jobD
   config:
     command: echo "E"
     
 - name: jobF
   type: command
   dependsOn: 
     - jobE
   config:
     command: echo "F"

当执行失败后,有两种手动重试方法。
方法一:
在History页面找到失败的项目,点击Flow

在流程页面,点击Prepare Execution,可以看到执行成功的作业是灰色的,这是直接执行即可

方法二:
在project页面找到失败的项目,并进入该项目

点击Execute Flow,在流程页面中,对执行完成的作业点击右键,将其标注为disable,标注后将不再执行该作业


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loftiest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值