Azkaban 简介
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
一、安装准备工作
系统环境:CentOS Linux release 7.9.2009 (Core)
执行服务器:azkaban-executor-server-2.5.0.tar.gz
下载地址:https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-executor-server-2.5.0.tar.gz
服务器:azkaban-web-server-2.5.0.tar.gz
下载地址:https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-web-server-2.5.0.tar.gz
执行的sql脚本:azkaban-sql-script-2.5.0.tar.gz
下载地址:https://s3.amazonaws.com/azkaban2/azkaban2/2.5.0/azkaban-sql-script-2.5.0.tar.gz
二、安装Mysql
1、安装Mysql
注:目前azkaban只支持Mysql,需安装Mysql服务器。
[root@localhost ~]# yum -y install mariadb mariadb-server mariadb-devel
[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、网页提示不信任
解决:添加例外
- 微信号
- 微信扫一扫加我!
-
- 微信公众号
- 微信扫一扫关注我!
-
评论