Azkaban是在LinkedIn上创建的用于运行Hadoop作业的批处理工作流作业调度程序。Azkaban通过工作依赖性解决订购问题,并提供易于使用的Web用户界面来维护和跟踪您的工作流程。
Azkaban的设计首先考虑了可用性。它已经在LinkedIn上运行了几年,并驱动了许多Hadoop和数据仓库流程。
官网地址:https://azkaban.github.io/
官网Doc:https://azkaban.readthedocs.io/en/latest/getStarted.html#
Azkaban由三个关键组件构成:
官网下载地址:https://azkaban.github.io/downloads.html,官网下载的是源码包,需要自己手动编译,或者去下载已经编译好的版本,主要是三个包:
从官网或者GitHub下载的代码是源码,需要手动编译,Azkaban是使用Gradle而不是maven做依赖管理的,Gradle的安装使用可以参考:Gradle – 安装Gradle并集成到IDEA
按照上面博客将Gradle安装集成到IDEA后,就可以进行编译工作了,这里提醒一句,一定要把镜像地址改成国内镜像,不然编译时下载依赖很可能会超时下不来。 编译的话,可以在Linux服务器环境使用命令编译,也可以在Windows系统使用工具编译,我就是在windows环境编译了,我直接在源码包下使用gradle命令编译,中间还是出了点问题,所以我是在IDEA中编译的。
类Linux系统编译,官网也是给了说明,如下:
Windows系统编译,我是使用IDEA,打开源码的build.gradle,打开为project,然后我们在在IDEA的控制台输入gradlew build、gradlew clean、gradlew installDist,之后就等着下载依赖和编译吧,中间过程大概10-20分钟。
编译结束后,我们主要关注如下三块,db(元数据检表语句)、exec-server(执行器)、web-server(调度器),我们可以将这三部分的build/install下的azkaban-exec-server和azkaban-web-server文件夹打包或者直接上传到服务器,这里注意,如果是直接上传服务器,需要手动给bin目录下的sh脚本赋可执行权限,不然启动报错。
将文件夹或者打好的包上传到服务器后,我们需要修改一些配置,这里我把文件夹改了下名字,azkaban-web-server改成了server,azkaban-executor-server改成了executor。
需要安装MySQL,分配用户和权限,这里就不再介绍了。然后找到db模块下的build/install/azkaban-db文件夹下的create-all-sql的脚本文件,去数据库中初始化元数据。