azkaban基本架构与安装部署
一、基本架构
azkabanWebServer:是整个Azkaban工作流系统的主要管理者,用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度第一系列任务。
azkabanExecutorServer:负责具体的工作流的提交、执行,他们通过mysql数据库来协调任务的执行。
关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebserver和AzkabanExecutorServer都需要访问数据库。
- 基本流程:
- 定义一个workflow工作流,通过webserver上传
- webserver会将数据和配置存储到mysql当中
- webserver执行任务,立即执行或定时调度,将执行请求发给executor
- executor收到任务后到,到mysql数据库当中将相应工作的配置文件读取存并下载只本地
- executor在不断执行任务过程中不断将自己的执行状态存储到mysql当中
- websever读取mysql执行状态,显示当前工作进度和状态
二、Azkaban安装部署
- 安装包
-
azkaban-web-server-2.5.0.tar.gz
-
azkaban-executor-server-2.5.0.tar.gz
-
azkaban-sql-script-2.5.0.tar.gz
资源提供:
链接:https://pan.baidu.com/s/1Rmy10OGhTt4EORFss3R_jw
提取码:xwlw
- 解压重命名
# 解压安装包
[root@jzy soft]# mkdir azkaban
[root@jzy opt]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C /opt/soft/azkaban/
[root@jzy opt]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C /opt/soft/azkaban/
[root@jzy opt]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C /opt/soft/azkaban/
# 重命名
[root@jzy azkaban]# mv azkaban-web-2.5.0/ server
[root@jzy azkaban]# mv azkaban-executor-2.5.0/ executor
- 创建azkaban数据库
# 进入mysql创建azkaban数据库,并执行脚本文件导入数据
[root@jzy azkaban]# mysql -uroot -pxxxx
mysql> create database azkaban;
mysql> use azkaban;
mysql> source /opt/soft/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
- 生成证书秘钥
# 生成证书和秘钥
[root@jzy azkaban]# cd server/
[root@jzy server]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
# 注意此处回车需要输入秘钥库口令,问题全部回车,直至问是否正确填y回车,生成证书秘钥成功!
# 我生成的是123456,且<jetty>也是123456,方便记忆
- 时间同步
# 步骤省略
....................
- Web服务器配置
# 配置web服务器
[root@jzy server]# cd /opt/soft/azkaban/server/conf/
[root@jzy conf]# vi azkaban.properties
需要修改的内容如下
# 修改为server下的web路径
web.resource.dir=/opt/soft/azkaban/server/web/
default.timezone.id=Asia/Shanghai
# 修改为conf路径下的xml路径
user.manager.xml.file=/opt/soft/azkaban/server/conf/azkaban-users.xml
# mysql一些基础配置修改
mysql.host=192.168.56.20
mysql.user=root
mysql.password=1234
# 秘钥库路径,修改为你生成的keystore路径
jetty.keystore=/opt/soft/azkaban/server/keystore
# keystore秘钥
jetty.password=123456
# jetty秘钥
jetty.keypassword=123456
jetty.truststore=/opt/soft/azkaban/server/keystore
jetty.trustpassword=123456
- web服务器用户配置
[root@jzy conf]# vi azkaban-users.xml
# 添加具有admin权限的用户
<user username="admin" password="admin" roles="admin"/>
如下所示
- executor执行服务器配置
[root@jzy executor]# cd /opt/soft/azkaban/executor/conf/
[root@jzy conf]# vi azkaban.properties
修改内容如下:
# 时间
default.timezone.id=Asia/Shanghai
# 文件修改为绝对路径
executor.global.properties=/opt/soft/azkaban/executor/conf/global.properties
# mysql
mysql.port=3306
mysql.host=192.168.56.20
mysql.database=azkaban # 注意此处默认为azkaban2,修改为与mysql和server统一的azkaban
mysql.user=root
mysql.password=1234
三、启动
webserver和executor需要分别启动
[root@jzy azkaban]# ./server/bin/azkaban-web-start.sh
[root@jzy azkaban]# ./executor/bin/azkaban-executor-start.sh
关闭命令
[root@jzy azkaban]# ./server/bin/azkaban-web-shutdown.sh
[root@jzy azkaban]# ./executor/bin/azkaban-executor-shutdown.sh
访问web端口,必须填写https+主机名+端口,注意必须为https,访问页面如下,填写的用户和密码为配置中的即可
四、窗口介绍
projects 展示所有任务
schedule 展示定时任务
executing 正在执行的任务
history 执行完毕的任务
五、邮件通知配置
进入server,修改properties
[root@jzy opt]# cd /opt/soft/azkaban/server/conf/
[root@jzy conf]# vi azkaban.properties
修改并添加如下位置,自己设置即可
# 配置发送的邮箱
mail.sender=
# 配置邮箱服务器
mail.host=
# 配置邮箱用户
mail.user=
# 配置邮箱密码
mail.password=
job.failure.email=
job.success.email=
各邮箱服务器host如下
腾讯qq邮箱:smtp.qq.com
腾讯企业邮箱:smtp.exmail.qq.com
126邮箱:smtp.126.com
163邮箱:smtp.163.com
执行设置发送邮箱