向导
Azkaban介绍
Azkaban是在LinkedIn上创建的用于运行Hadoop作业的批处理工作流作业调度程序。Azkaban通过工作依赖性解决订购问题,并提供易于使用的Web用户界面来维护和跟踪您的工作流程。
Azkaban的设计首先考虑了可用性。它已经在LinkedIn上运行了几年,并驱动了许多Hadoop和数据仓库流程。
官网地址:https://azkaban.github.io/
官网Doc:https://azkaban.readthedocs.io/en/latest/getStarted.html#
特性
- 与任何版本的Hadoop兼容
- 易于使用的Web UI
- 简单的Web和HTTP工作流程上传
- 项目工作区
- 安排工作流程
- 模块化且可插入
- 认证与授权
- 跟踪用户动作
- 通过电子邮件通知失败和成功
- SLA警报和自动终止
- 重试失败的作业
架构
Azkaban由三个关键组件构成:
- AzkabanWebServer:AzkabanWebServer是整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
- AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过mysql数据库来协调任务的执行。
- 关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer和AzkabanExecutorServer都需要访问数据库。
安装
下载
官网下载地址:https://azkaban.github.io/downloads.html,官网下载的是源码包,需要自己手动编译,或者去下载已经编译好的版本,主要是三个包:
- azkaban-web-server-版本号.tar.gz
- azkaban-executor-server-版本号.tar.gz
- azkaban-sql-script-版本号.tar.gz
编译
从官网或者GitHub下载的代码是源码,需要手动编译,Azkaban是使用Gradle而不是maven做依赖管理的,Gradle的安装使用可以参考:Gradle – 安装Gradle并集成到IDEA
按照上面博客将Gradle安装集成到IDEA后,就可以进行编译工作了,这里提醒一句,一定要把镜像地址改成国内镜像,不然编译时下载依赖很可能会超时下不来。 编译的话,可以在Linux服务器环境使用命令编译,也可以在Windows系统使用工具编译,我就是在windows环境编译了,我直接在源码包下使用gradle命令编译,中间还是出了点问题,所以我是在IDEA中编译的。
Linux类系统编译
类Linux系统编译,官网也是给了说明,如下:
Windows系统编译
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的脚本文件,去数据库中初始化元数据。