任务调度器之azkaban(一)

最近公司有用到azkaban,参考一些资料来分享下。
市面上目前有许多工作流调度器
在hadoop领域,常见的工作流调度器有Oozie,Azkaban,Cascading,Hamake等。
各种调度工具特性对比
下面的表格对上述四种调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在显著的区别。


Azkaban介绍
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
Web用户界面
方便上传工作流
方便设置任务之间的关系
调度工作流
认证/授权(权限的工作)
能够杀死并重新启动工作流
模块化和可插拔的插件机制
项目工作区
工作流和任务的日志记录和审计
Azkaban包括三个关键组件:
关系数据库:使用mysql数据库,主要用于保存流程、权限、任务状态、任务计划等信息。azkaban executor server和azkaban web server均使用到了Mysql数据库。
AzkabanExecutorServer在如下几个方面使用到了数据库:
1、获取project的信息
2、执行工作流
3、存储工作流运行日志
AzkabanWebServer在如下几个方面使用到了数据库:
1、project管理
2、跟踪工作流执行进度
3、访问历史工作流的运行信息
4、定时执行工作流任务
AzkabanWebServer:为用户提供管理留存、任务计划、权限等功能。
是整个Azkaban工作流系统的主要管理者,它负责project管理、用户登录认证、定时执行工作流、跟踪工作流执行进度等一系列任务。同时,它还提供Web服务操作的接口,利用该接口,用户可以使用curl或其他ajax的方式,来执行azkaban的相关操作。操作包括:用户登录、创建project、上传workflow、执行workflow、查询workflow的执行进度、杀掉workflow等一系列操作,且这些操作的返回结果均是json的格式。
AzkabanExecutorServer:执行任务,并把任务执行的输出日志保存到Mysql;可以同时启动多个AzkabanExecutorServer,他们通过mysql获取流程状态来协调工作。
之所以将AzkabanWebServer和AzkabanExecutorServer分开,主要是因为在某个人物流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级。
两种不同类型的Azkaban
solo server mode:该模式使用H2数据库,且WebServer和ExecutorServer运行在同一个进程中,没有单独分开。该模式适用于小规模使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值