阿兹卡班安装及介绍

简介

Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。

也可以用其代替cron来对周期性任务进行调度,并且更为直观,可靠,同时提供了美观的可视化管理界面。

下文将对azkaban对spark离线任务调度进行简要说明。

azkaban由三部分构成

  • Relational Database(Mysql)
  • Azkaban Web Server
  • Azkaban Executor Server

Relational Database(Mysql)

azkaban将大多数状态信息都存于Mysql中,Azkaban Web Server 和 Azkaban Executor Server也需要访问DB。

Azkaban Web Server

提供了Web UI,是azkaband的主要管理者,包括 project 的管理,认证,调度,对工作流执行过程的监控等。

Azkaban Executor Server

调度工作流和任务,纪录工作流活任务的日志,之所以将AzkabanWebServer和AzkabanExecutorServer分开,主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级。

可调度任务类型

  • linux命令
  • 脚本
  • java程序
  • hadoop MR
  • hive

创建任务流

创建任务

只需要创建一个.job结尾的文本文件,通过dependencies字段指定依赖的上层执行脚本

1
2
3
# foo.job
type=command
command=echo "Hello World"
1
2
3
4
# bar.job
type=command
dependencies=foo
command=echo bar

上传任务流

将所有job文件打包成一个zip文件上传即可

1
zip -q foo.job.zip foo.job

参考资料

  1. 使用Azkaban调度Spark任务
  2. Azkaban 3的安装与配置
  3. 2018工作流引擎比较:Airflow、Azkaban、Conductor、Oozie和 Amazon Step Functions
  4. 英文版
Frone Xie wechat
欢迎关注我的微信公众号!