azkaban基本架构与安装部署

  • 一、基本架构
  • 二、Azkaban安装部署
  • 三、启动
  • 四、窗口介绍
  • 五、邮件通知配置


一、基本架构

azkabanWebServer:是整个Azkaban工作流系统的主要管理者,用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度第一系列任务。
 
 
azkabanExecutorServer:负责具体的工作流的提交、执行,他们通过mysql数据库来协调任务的执行。
 
 
关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebserver和AzkabanExecutorServer都需要访问数据库。

alexa架构 az架构_mysql

  • 基本流程:
  1. 定义一个workflow工作流,通过webserver上传
  2. webserver会将数据和配置存储到mysql当中
  3. webserver执行任务,立即执行或定时调度,将执行请求发给executor
  4. executor收到任务后到,到mysql数据库当中将相应工作的配置文件读取存并下载只本地
  5. executor在不断执行任务过程中不断将自己的执行状态存储到mysql当中
  6. websever读取mysql执行状态,显示当前工作进度和状态
     
     

二、Azkaban安装部署

  1. 安装包
  1. 解压重命名
# 解压安装包
[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
  1. 创建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
  1. 生成证书秘钥
# 生成证书和秘钥
[root@jzy azkaban]# cd server/

[root@jzy server]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
  # 注意此处回车需要输入秘钥库口令,问题全部回车,直至问是否正确填y回车,生成证书秘钥成功!
  # 我生成的是123456,且<jetty>也是123456,方便记忆
  1. 时间同步
# 步骤省略
....................
  1. 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"/>

如下所示

alexa架构 az架构_sql_02

  1. 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,访问页面如下,填写的用户和密码为配置中的即可

alexa架构 az架构_mysql_03

四、窗口介绍

projects 展示所有任务

schedule 展示定时任务

executing 正在执行的任务

history 执行完毕的任务

alexa架构 az架构_mysql_04

五、邮件通知配置

进入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

执行设置发送邮箱

alexa架构 az架构_alexa架构_05