azkaban 学习
Azkaban是一款任务调度系统
任务调度:有四个任务脚A、B、C、D,其中任务A与任务B可以并行运行,然后任务C依赖任务A和任务B的运行结果,任务D依赖任务C的运行结果,此时整个过程可以等效为一个有向无环图,而给所有的任务运行定一个运行规则就可以理解为任务调度。
在任务简单时可以人为控制,但是当任务非常多,依赖复杂时,如果没有清晰的任务规划图,很容易在任务之间形成闭环从而出错,或者多个可并行的任务没有并行执行而浪费资源,这种时候就需要一个工作流调度器,Azkaban就是完成这种任务的。
Azkaban分为三个部分:
- mysql服务器:用于存储项目、日志或者执行计划之类的信息
- web服务器:使用Jetty对外提供web服务,使用户可以通过web页面方便管理
- executor服务器:负责具体的工作流的提交、执行
Azkaban中的核心概念:project、job与flow,excution
project可以理解为某个项目,其项目中包含了许多需要执行的任务,即为job,各个job之间形成依赖关系,便组成了工作流flow。
一个project可以包含多个flow。每个执行的flow对应一个excution。

浙公网安备 33010602011771号