大数据 - (六-3)- ⼯作流调度系统Azkaban

⼯作流调度系统

  • ⼀个完整的数据分析系统通常都是由⼤量任务单元组成:
    • shell脚本程序
    • java程序
    • mapreduce程序
    • hive脚本等
  • 各任务单元之间存在时间先后及前后依赖关系
  • 为了很好地组织起这样的复杂执⾏计划,需要⼀个⼯作流
    调度系统来调度任务的执⾏

⼯作流调度实现⽅式

  • 简单的任务调度
    • 直接使⽤linuxcrontab
  • 复杂的任务调度
    • 开发调度平台或使⽤现成的开源调度系统,⽐如OoizeAzkabanAirflow

Azkaban与Oozie对⽐

  • 总体来说,Ooize相⽐Azkaban是⼀个重量级的任务调
    度系统,功能全⾯,但配置使⽤也更复杂(xml)。
  • 如果可以不在意某些功能的缺失,轻量级调度器Azkaban是很不错的候选对象。
功能上对比
  • 两者均可以调度mapreducepigjava脚本⼯作流任务
  • 两者均可以定时执⾏⼯作流任务
⼯作流定义对比
  • Azkaban使⽤Properties⽂件定义⼯作流
  • Oozie使⽤XML⽂件定义⼯作流
⼯作流传参对比
  • Azkaban⽀持直接传参,例如${input}
  • Oozie⽀持参数和EL表达式,例如${fs:dirSize(myInputDir)}
定时执⾏对比
  • Azkaban的定时执⾏任务是基于时间的
  • Oozie的定时执⾏任务基于时间和输⼊数据
资源管理对比
  • Azkaban有较严格的权限控制,如⽤户对⼯作流进⾏读/写/执⾏等操作
  • Oozie暂⽆严格的权限控制
⼯作流执⾏对比
  • Azkaban有两种运⾏模式,分别是
    • solo server mode
      • executor serverweb server部署在同⼀台节点
    • multi server mode
      • executor serverweb server可以部署在不同节点
  • Oozie作为⼯作流服务器运⾏,⽀持多⽤户和多⼯作流

Azkaban介绍

  • 批量⼯作流任务调度器
  • ⽤于在⼀个⼯作流内以⼀个特
    定的顺序运⾏⼀组⼯作和流程
  • 使⽤job配置⽂件建⽴任务之间的依赖关系
  • Azkaban定义了⼀种KV⽂件(properties)格式来建⽴任务之间的依赖关系
  • 并提供⼀个易于使⽤的web⽤户界⾯维护和跟踪你的⼯作流
有如下功能特点
  • Web⽤户界⾯
  • ⽅便上传⼯作流
  • ⽅便设置任务之间的关系
  • 调度⼯作流
架构⻆⾊
  • mysql服务器
    • 存储元数据,如项⽬名称、项⽬描述、项⽬权限、任务状态、SLA规则等
  • AzkabanWebServer
    • 对外提供web服务,使⽤户可以通过web⻚⾯管理
    • 职责包括项⽬管理、权限授权、任务调度、监控executor
  • AzkabanExecutorServer
    • 负责具体的⼯作流的提交、执⾏

Azkaban安装部署

你可能感兴趣的:(大数据 - (六-3)- ⼯作流调度系统Azkaban)