Azkaban工作流

1.什么是Azkaban?它可以做些什么?

Azkaban是一个应用比较广泛的工作流任务调度系统,作为初学者请先看完这篇知乎文章《Azkaban入门篇》就可以对它有一个简单的认识。

这篇文章前面关于配置说明可以不用了解很透彻,但网页界面功能介绍的内容必须全部掌握,这样我们才能知道怎么在网页界面上进行操作。

另外Azkaban还有官方的文档介绍 Azkaban documentation ,这些介绍可以比较深刻的认识 Azkaban 工作流。

2.Azkaban网页UI界面功能

网页登录成功后,将会看到Azkaban的首页如下,默认打开 project 的详情页,如果没有项目则为空。

Azkaban工作流

点击右上角的 Create Project 按钮,输入对应的名称和描述(两者都不能为空)即可创建项目。

Azkaban工作流

创建成功后建自动进入项目工作流详情页,具体如下图。创建工作流需要 Upload 上传工作流文件,上传后系统将会自动解析文件显示工作流详情。

Permissions 按钮是配置对该项目的操作权限,可以增添 Admin,Read,Write,Execute,Schedule几类权限。

Project Logs 是关于该项目的工作日志,包括上传工作流文件和运行工作流的信息。

Delete Project是删除整个项目(不是指单个工作流),拥有修改权限的角色可以使用该功能。

Azkaban工作流

上传工作流文件后界面出现以下显示,工作流文件下载链接 Archive.zip。工作流文件格式严格定义,格式错误将无法解析。

Azkaban工作流

点击右上角的 Schedule/Execute Flow ,在弹出的界面点击 Execute 即可完成工作流运行。工作流运行完成后(如果运行比较快只有几秒的话)将弹出界面提示工作流

已提交,可以在 Executions 选项框汇查看对应的运行情况。

Azkaban工作流

运行工作流的弹出界面需要配置相关信息,具体如下。

Azkaban工作流

Flow View 选项的显示界面如上图,这里我们可以看到各工作流的Graph关系图,这些关系图的各工作流可以鼠标右键进行配置,Expand Flow 是扩展工作流,显示该工作流下

包含的子工作流,无子工作流无该功能,Open Flow in New Window是在新窗口打开该工作流,enable是该工作流执行,该功能又细分使哪些工作流执行,默认打开是所有工作流都enable,

因此操作可能无效,Disable则相反使工作流不执行。Center Job 是使工作流在关系网中显示正中央,只是看起来在中心,在复杂的关系网中看起来舒适一些。

Azkaban工作流

Notification 选项框的显示界面如上图,主要配置工作流运行成功或失败的通知提示。失败发送的机制分为以下两种。

  • First Failure   -  工作流第一次失败发送邮件
  • Flow Finished-  工作流中出现job失败时等工作流结束再发送邮件

Email overrides 勾选的话意味着运行自行配置修改,文字框中填写对应的邮箱号即可。

Azkaban工作流

Failure Options 是配置工作流出现失败情况怎么处理这些失败的工作流,分为以下三种机制:

  • Finish Current Running 将会关闭当前运行的工作,且不会开始行的工作,该工作流将会贴上 FAILED FINISHING 标志,并在所有工作流完成后设置为 FAILED 
  • Cancel All  将会马上杀死所有运行的工作,同时标志所有已运行的工作为 FAILED
  • Finish All Possible 是尽可能继续执行该工作流依赖的工作,同时该工作流将被标志为 FAILED FINISHING ,当所有结束后置为 FAILED 

Azkaban工作流

Concurrent 选项的显示界面如上图,主要配置工作流在执行过程中被调用时采取的机制,具体分为以下几种情况。

  • Skip Executio 如果工作流正在执行不调用
  • Run Concurrently 将执行该工作流,不管工作流是否在运行,但是运行过程是在两个不同的工作空间。
  • Pipeline 将执行在同一工作空间执行该工作流,分为以下机制
    1.等待执行的工作流完成后再重新执行
    2.等待执行的工作流的子工作流执行完成执行,使用场景是新的工作流需要在旧工作流前执行。

Azkaban工作流

Flow Parameters 是定义全局参数,点击Add Row添加对应的Name 和 Value即可。