大数据 - (六-3)- ⼯作流调度系统Azkaban
⼯作流调度系统
- ⼀个完整的数据分析系统通常都是由⼤量任务单元组成:
- shell脚本程序
- java程序
- mapreduce程序
- hive脚本等
- 各任务单元之间存在时间先后及前后依赖关系
- 为了很好地组织起这样的复杂执⾏计划,需要⼀个⼯作流
调度系统来调度任务的执⾏
⼯作流调度实现⽅式
- 简单的任务调度
- 复杂的任务调度
- 开发调度平台或使⽤现成的开源调度系统,⽐如
Ooize、Azkaban、Airflow等
Azkaban与Oozie对⽐
- 总体来说,
Ooize相⽐Azkaban是⼀个重量级的任务调
度系统,功能全⾯,但配置使⽤也更复杂(xml)。
- 如果可以不在意某些功能的缺失,轻量级调度器
Azkaban是很不错的候选对象。
功能上对比
- 两者均可以调度
mapreduce,pig,java脚本⼯作流任务
- 两者均可以定时执⾏⼯作流任务
⼯作流定义对比
Azkaban使⽤Properties⽂件定义⼯作流
Oozie使⽤XML⽂件定义⼯作流
⼯作流传参对比
Azkaban⽀持直接传参,例如${input}
Oozie⽀持参数和EL表达式,例如${fs:dirSize(myInputDir)}
定时执⾏对比
Azkaban的定时执⾏任务是基于时间的
Oozie的定时执⾏任务基于时间和输⼊数据
资源管理对比
Azkaban有较严格的权限控制,如⽤户对⼯作流进⾏读/写/执⾏等操作
Oozie暂⽆严格的权限控制
⼯作流执⾏对比
Azkaban有两种运⾏模式,分别是
solo server mode
executor server和web server部署在同⼀台节点
multi server mode
executor server和web server可以部署在不同节点
Oozie作为⼯作流服务器运⾏,⽀持多⽤户和多⼯作流
Azkaban介绍
- 批量⼯作流任务调度器
- ⽤于在⼀个⼯作流内以⼀个特
定的顺序运⾏⼀组⼯作和流程
- 使⽤job配置⽂件建⽴任务之间的依赖关系
Azkaban定义了⼀种KV⽂件(properties)格式来建⽴任务之间的依赖关系
- 并提供⼀个易于使⽤的
web⽤户界⾯维护和跟踪你的⼯作流
有如下功能特点
Web⽤户界⾯
- ⽅便上传⼯作流
- ⽅便设置任务之间的关系
- 调度⼯作流
架构⻆⾊
mysql服务器
- 存储元数据,如项⽬名称、项⽬描述、项⽬权限、任务状态、SLA规则等
AzkabanWebServer
- 对外提供
web服务,使⽤户可以通过web⻚⾯管理
- 职责包括项⽬管理、权限授权、任务调度、监控
executor。
AzkabanExecutorServer
Azkaban安装部署