Azkaban简介
Azkaban 一个批量工作流任务调度器,使用Java语言开发。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流,当然Azkaban也可以使用API,来调用相应的操作和任务。
Azkaban 的优点:
- 提供功能清晰,简单易用的Web UI界面
- 提供job配置文件快速建立任务和任务之间的依赖关系
- 提供模块化和可插拔的插件机制,原生支持command、Java、Hive、Pig、Hadoop
- 基于Java开发,代码结构清晰,易于二次开发
Azkaban 有三种安装部署方式:
- solo server model(单服务模式):该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是AzkabanSingleServer。可以使用自带的H2数据库或者配置mysql数据。该模式适用于小规模的使用。此模式合适个人试用使用。它也可以用在小规模的使用案例中。
- two server model(2个服务模式):数据库为mysql,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行,这种模式下,管理服务器和执行服务器互不影响。适用在较重的生成环境中。
- multiple-executor(分布式多服务模式):存放元数据的数据库为mysql,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行。多个 Executor 模式为最重的生产环境。
- Azkaban安装部署:
在集群环境下一般使用多服务器模式,two server和multiple-executor模式安装配置差不多,本文安装配置的是two server模式。solo模式安装比较简单,如果想要安装配置solo模式可以去官网查看。
- 安装前准备
- 在Vmware上安装linux环境
- 在linux上安装JDK1.8
- 在linux上安装MySQL
- 下载
在Azkaban的GitHub上下载Azkaban的安装包,本文下载的是Azkaban3.80.0版本,下载在/usr/local目录下,命令如下代码 1所示。
git clone https://github.com/azkaban/azkaban.git |
编译
进入到刚刚下载完的Azkaban的目录下,执行命令./gradlew distTar,如图 1所示。
图 1 编译Azkaban安装包
拷贝
新建文件夹来存放azkaban-3.8的安装文件,将第3步编译好的Azkaban相关的安装包拷贝到新建文件azkaban-3.80.0,如代码 2所示。
cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.80.0-1-g94ddcf2.tar.gz azkaban-3.80.0/ cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.80.0-1-g94ddcf2.tar.gz azkaban-3.80.0/ cp azkaban/azkaban-db/build/distributions/azkaban-db-3.80.0-1-g94ddcf2.tar.gz azkaban-3.80.0/ |
解压 重命名
解压第4步拷贝到的安装包,为了方便后面的操作,重命名解压后的文件,如代码 3所示。
cd /usr/local/azkaban-3.80.0/ tar –zxvf azkaban-db-3.80.0-1-g94ddcf2.tar.gz tar –zxvf azkaban-exec-server-3.80.0-1-g94ddcf2.tar.gz tar –zxvf azkaban-web-server-3.80.0-1-g94ddcf2.tar.gz #重命名 mv azkaban-db-3.80.0-1-g94ddcf2.tar.gz azkaban-db mv azkaban-exec-server-3.80.0-1-g94ddcf2.tar.gz azkaban-web-server mv azkaban-exec-server-3.80.0-1-g94ddcf2.tar.gz azkaban-exec-server |
创建Azkaban元数据库
登录linux的mysql,创建Azkaban数据库,并导入相应的数据表,如代码 4所示。