Azkaban 简介
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
一、安装准备工作
系统环境:CentOS Linux release 7.9.2009 (Core)
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
执行服务器:azkaban-executor-server-2.5.0.tar.gz
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
下载地址:https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-executor-server-2.5.0.tar.gz
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
服务器:azkaban-web-server-2.5.0.tar.gz
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
下载地址:https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-web-server-2.5.0.tar.gz
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
执行的sql脚本:azkaban-sql-script-2.5.0.tar.gz
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
下载地址:https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-sql-script-2.5.0.tar.gz
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
二、安装Mysql
1、安装Mysql
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
注:目前azkaban只支持Mysql,需安装Mysql服务器。
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
[root@localhost ~]# yum -y install mariadb mariadb-server mariadb-devel
文章源自小柒网-https://www.yangxingzhen.cn/7837.html
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
2、创建用户及授权
[root@localhost ~]# mysql
MariaDB [(none)]> create database azkaban;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on azkaban.* to azkaban@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
3、导入SQL文件
[root@localhost ~]# wget https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-sql-script-2.5.0.tar.gz
[root@localhost ~]# tar xf azkaban-sql-script-2.5.0.tar.gz -C /usr/local
[root@localhost ~]# mysql
MariaDB [(none)]> use azkaban;
Database changed
MariaDB [azkaban]> source /usr/local/azkaban-2.5.0/create-all-sql-2.5.0.sql;
三、安装Azkaban-web
1、生成SSL证书
密码均设为:azkaban,其他信息随意填写,生成的keystore文件复制到azkaban-web-2.5.0目录下
[root@localhost ~]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
[root@localhost ~]# mv keystore /usr/local/azkaban-web-2.5.0
2、配置时区
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
3、下载Azkaban-web软件包
[root@localhost ~]# wget https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-web-server-2.5.0.tar.gz
[root@localhost ~]# tar xf azkaban-web-server-2.5.0.tar.gz -C /usr/local/
4、配置azkaban.properties
[root@localhost ~]# cd /usr/local/azkaban-web-2.5.0/conf/
将所有路径都配置为绝对路径,否则会有各种找不到文件的错误
配置内容如下
#Azkaban Personalization Settings
azkaban.name=Azkaban
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/usr/local/azkaban-web-2.5.0/web/
default.timezone.id=Asia/Shanghai
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/usr/local/azkaban-web-2.5.0/conf/azkaban-users.xml
#Loader for projects
executor.global.properties=/usr/local/azkaban-web-2.5.0/conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=123456
mysql.numconnections=100
Velocity dev mode
=================
velocity.dev.mode=false
Azkaban Jetty server properties.
================================
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/usr/local/azkaban-web-2.5.0/keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=/usr/local/azkaban-web-2.5.0/keystore
jetty.trustpassword=azkaban
Azkaban Executor settings
=========================
executor.port=12321
mail settings
=============
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
5、配置管理员用户
[root@localhost conf]# vim azkaban-users.xml
配置内容如下
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="admin" password="admin" roles="admin,metrics" />
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
6、启动Azkaban-web
[root@localhost conf]# mkdir ../logs
[root@localhost conf]# cd ../logs/
[root@localhost logs]# ../bin/azkaban-web-start.sh >/dev/null 2>&1
关闭Azkaban-web
[root@localhost logs]# ../bin/azkaban-web-shutdown.sh
7、访问Azkaban-web
1)浏览器输入https://172.168.1.156:8443/,如下图所示
注意:172.168.1.156为服务器IP地址
2)输入用户名和密码,均为admin
3)登录成功界面,如下图所示
四、安装Azkaban-exec
1、下载Azkaban-executor-server软件包
[root@localhost ~]# wget https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-executor-server-2.5.0.tar.gz
[root@localhost ~]# tar xf azkaban-executor-server-2.5.0.tar.gz -C /usr/local
2、配置azkaban.properties
[root@localhost ~]# cd /usr/local/azkaban-executor-2.5.0/conf
[root@localhost conf]# vim azkaban.properties
配置内容如下
#Azkaban
default.timezone.id=Asia/Shanghai
Azkaban JobTypes Plugins
========================
azkaban.jobtype.plugin.dir=plugins/jobtypes
#Loader for projects
executor.global.properties=/usr/local/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=123456
mysql.numconnections=100
Azkaban Executor settings
=========================
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
3、启动Azkaban-exec
[root@localhost conf]# mkdir ../logs
[root@localhost conf]# cd ../logs/
[root@localhost logs]# ../bin/azkaban-executor-start.sh >/dev/null 2>&1
关闭Azkaban-exec
[root@localhost logs]# /usr/local/azkaban-executor-2.5.0/bin/azkaban-executor-shutdown.sh
五、Azkaban实战
Azkaba内置的任务类型支持command、java
1、创建test.job描述文件
[root@localhost ~]# vim test.job
type=command
command=echo 'hello'
2、将job资源文件打包成zip文件,传到windows电脑上,后面需要上传文件。
[root@localhost ~]# zip test.zip test.job
[root@localhost ~]# sz test.zip
3、创建工程
登录Azkaban-web页面,如下图
4、上传刚才打包好的zip文件
至此,Azkaban-web搭建完毕。
六、常见错误
1、azkaban-users.xml找不到
Caused by: java.lang.IllegalArgumentException: User xml file conf/azkaban-users.xml doesn't exist.
解决:配置文件azkaban.properties里user.manager.xml.file改为绝对路径
2、Keystore找不到
java.io.FileNotFoundException: /usr/local/azkaban-web-2.5.0/bin/keystore (No such file or directory)
解决:复制keystore文件到bin目录下
3、插件地址不存在
ERROR [AzkabanWebServer] [Azkaban] plugin path plugins/triggers doesn't exist!
解决:暂不需要更改
4、网页登陆显示不正常
解决:修改web.resource.dir为绝对路径web.resource.dir=/usr/local/azkaban-web-2.5.0/web/
解决:使用安全连接https://172.168.1.156:8443
5、网页提示不信任
解决:添加例外
继续阅读
Azkaban最后更新:2022-12-3