Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪任务的工作流。
Azkaban有集群式和单机式的安装模式,本文介绍的是单机模式的安装过程,读者可以按照本教程学习单机版的安装,等熟悉后可以自行研究集群式安装部署方法。
单机模式在小集群和简单场景之下,就已经够用了。
本教程中使用的Azkaban安装包,是笔者再github上下载的代码编译得到的。
操作系统:CentOS 6.5 x64
JAVA版本:JDK 1.8.0_121
Azkaban版本:Azkaban 3.73.0
软件:
jdk-8u121-linux-x64.tar.gz
azkaban-solo-server-3.73.0.tar.gz
将jdk解压到指定的目录下,解压缩命令为:
tar xf jdk-8u121-linux-x64.tar.gz -C /opt
修改环境变量,需要在/etc/profile文件中添加的内容如下:
#set java environment
export JAVA_HOME=/opt/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
测试Java是否安装成功。
java -version
创建安装目录,并将Azkaban解压缩到指定的目录中:
mkdir -pv /opt/azkaban-3.73.0
tar xf azkaban-solo-server-3.73.0.tar.gz -C /opt/azkaban-3.73.0
创建自定义的Azkaban启动脚本/opt/azkaban-3.73.0/azkaban-solo-server-3.73.0/start.sh
,内容为:
#!/bin/bash
BASEDIR=$(dirname $0)
pushd ${BASEDIR} &>/dev/null
bin/start-solo.sh
popd &>/dev/null
修改配置文件conf/azkaban.properties
:
azkaban.name=MyAzkaban
azkaban.label=Azkaban_xkjcf.com
default.timezone.id=Asia/Shanghai
jetty.port=8081
修改插件配置文件plugins/jobtypes/commonprivate.properties
:
# 控制任务执行前的内存检测行为
memCheck.enabled=false
修改用户名密码配置文件conf/azkaban-users.xml
,按需修改username和password参数。
启动Azkaban,运行如下命令:
bash /opt/azkaban-3.73.0/azkaban-solo-server-3.73.0/start.sh
通过Web界面访问http://xxx.xxx.xxx.xxx:8081
账号:azkaban
密码:azkaban
创建一个任务,任务中存在两个组件foo和bar,bar组件依赖宇foo。
创建job/foo.job文件,内容为:
# foo.job
type=command
command=echo "Hello world"
创建job/bar.job文件,内容为:
# bar.job
type=command
dependencies=foo
command=echo "bar.job"
将job目录压缩为job.zip,提交到Azkaban任务中。
查看日志,查看执行过的历史任务。
查看日志,查看执行过的历史任务。
在/etc/rc.local文件内加入启动Azkaban的脚本:
# /etc/rc.local
bash /opt/azkaban-3.73.0/azkaban-solo-server-3.73.0/start.sh &
至此,Azkaban的solo模式安装完成。
笔者将本教程的安装软件、教程脚本以及安装视频均在百度网盘上,如下为链接下载:
链接:https://pan.baidu.com/s/1gjzOrfzu8zp3WvVFthkvxA
提取码:kux9