Azkaban:
一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通过配置中的 dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。
端口号为:8443
Azkaban 特点:
1)兼容任何版本的 hadoop
2)易于使用的 web 用户界面
3)简单的工作流的上传
4)方便设置任务之间的关系
5)调度工作流
6)模块化和可插拔的插件机制
7)认证/授权(权限的工作)
8)能够杀死并重新启动工作流
9)有关失败和成功的电子邮件提醒
Azkaban 的架构:
Azkaban 由三个关键组件构成:
[外链图片转存失败(img-M0TDmNji-1569146556829)(C:\Users\Jds\AppData\Roaming\Typora\typora-user-images\1568702568329.png)]
1)AzkabanWebServer:AzkabanWebServer 是整个 Azkaban 工作流系统的主要管理者,它用于用户登录认证、负责 project 管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
2)AzkabanExecutorServer: 负责具体的工作流的提交、执行,它们通过 mysql 数据库来协调任务的执行。
3)关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer 和 AzkabanExecutorServer 都需要访问数据库。
Azkaban 下载地址:
下载地址:http://azkaban.github.io/downloads.html
Azkaban 安装部署:
安装前准备:
1、将 Azkaban Web 服务器、Azkaban 执行服务器、Azkaban 的 sql 执行脚本及 MySQL 安装包拷贝到 虚拟机上。
1)azkaban-web-server-2.5.0.tar.gz
2)azkaban-executor-server-2.5.0.tar.gz
3)azkaban-sql-script-2.5.0.tar.gz
4)mysql-libs.zip
2、选择 MySQL 作为 Azkaban 数据库,因为 Azkaban 建立了一些 MySQL 连接增强功能,以方便 Azkaban 设置,并增强服务可靠性。
安装 Azkaban:
1)在 /opt/module/ 目录下创建 azkaban 目录
[root@bigdata111 module]# mkdir azkaban
2)解压 azkaban-web-server-2.5.0.tar.gz、azkaban-executor-server-2.5.0.tar.gz、azkaban-sql-script-2.5.0.tar.gz到 /opt/module/azkaban 目录下
[root@bigdata111 module]# tar -zxvf azkaban-web-server-2.5.0.tar.gz -C /opt/module/azkaban/
[root@bigdata111 module]# tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C /opt/module/azkaban/
[root@bigdata111 module]# tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C /opt/module/azkaban/
3)对解压后的额文件重新命名
[root@bigdata111 azkaban]# mv azkaban-web-2.5.0/ server
[root@bigdata111 azkaban]# mv azkaban-executor-2.5.0/ executor
4)azkaban 脚本导入
进入 mysql,创建 azkaban 数据库,并将解压的脚本导入到 azkaban 数据库。
[root@bigdata111 azkaban]# mysql -uroot -p000000
mysql> create database azkaban;
mysql> use azkaban;
mysql> source /opt/module/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
注:source 后跟的 .sql 文件,用于批量处理 .sql 文件中的 sql 语句。
生成密钥库:
Keytool 是 java 数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。
-keystore 指定密钥库的名称及位置(产生的各类信息将不在.keystore文件中)
-genkey 在用户主目录中创建一个默认文件 “.keystore”
-alias 对我们生成的 .keystore 进行指认别名;如果没有默认是 mykey
-keyalg 指定密钥的算法 RSA/DSA 默认是 DSA
1、生成 keystore 的密码及相应信息的密钥库
[root@bigdata111 azkaban]# keytool -keystore keystore -alias jetty -genkey -keyalg RSA
输入密钥库口令: 000000
再次输入新口令: 000000
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么?
[Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
[否]:y
输入 的密钥口令 000000
(如果和密钥库口令相同, 按回车):
再次输入新口令: 000000
注意:
密钥库的密码至少必须 6 个字符,可以是纯数字或者字母或者数字和字母的组合等等
密钥库的密码最好和 的密钥相同,方便记忆
2、将 keystore 拷贝到 azkaban web 服务器根目录中
[root@bigdata111 azkaban]# mv keystore /opt/module/azkaban/server/
时间同步配置:
如果在/usr/share/zoneinfo/这个目录下不存在时区配置文件Asia/Shanghai,就要用 tzselect 生成。
[root@bigdata111 azkaban]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
-
Africa
-
Americas
-
Antarctica
-
Arctic Ocean
-
Asia
-
Atlantic Ocean
-
Australia
-
Europe
-
Indian Ocean
-
Pacific Ocean
-
none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
-
Afghanistan 18) Israel 35) Palestine
-
Armenia 19) Japan 36) Philippines
-
Azerbaijan 20) Jordan 37) Qatar
-
Bahrain 21) Kazakhstan 38) Russia
-
Bangladesh 22) Korea (North) 39) Saudi Arabia
-
Bhutan 23) Korea (South) 40) Singapore
-
Brunei 24) Kuwait 41) Sri Lanka
-
Cambodia 25) Kyrgyzstan 42) Syria
-
China 26) Laos 43) Taiwan
-
Cyprus 27) Lebanon 44) Tajikistan
-
East Timor 28) Macau 45) Thailand
-
Georgia 29) Malaysia 46) Turkmenistan
-
Hong Kong 30) Mongolia 47) United Arab Emirates
-
India 31) Myanmar (Burma) 48) Uzbekistan
-
Indonesia 32) Nepal 49) Vietnam
-
Iran 33) Oman 50) Yemen
-
Iraq 34) Pakistan
#? 9
Please select one of the following time zone regions.
-
Beijing Time
-
Xinjiang Time
#? 1
The following information has been given:
China
Beijing Time
Therefore TZ=‘Asia/Shanghai’ will be used.
Local time is now: Thu Oct 18 16:24:23 CST 2018.
Universal Time is now: Thu Oct 18 08:24:23 UTC 2018.
Is the above information OK?
-
Yes
-
No
#? 1
You can make this change permanent for yourself by appending the line
TZ=‘Asia/Shanghai’; export TZ
to the file ‘.profile’ in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai
拷贝该时区文件,覆盖系统本地时区配置
[root@bigdata111 azkaban]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
集群时间同步(同时发给三个窗口)
[root@bigdata111 azkaban]# sudo date -s ‘2019-05-20 20:39:30’
单窗口将时间和网络时间同步
安装 ntpdate 工具
yum -y install ntp ntpdate
首先运行 ntpdate ntp.aliyun.com 可更新当前服务器的时间
运行 hwclock –systohc 修改服务器映射到我们系统的时间
配置文件:
Web 服务器配置:
1、进入 azkaban web 服务器安装目录 conf 目录,打开 azkaban.properties 文件
[root@bigdata111 conf]# pwd
/opt/module/azkaban/server/conf
[root@bigdata111 conf]# vi azkaban.properties
2、按照如下配置修改 azkaban.properties 文件
#默认web server存放web文件的目录
web.resource.dir=/opt/module/azkaban/server/web/
#默认时区,已改为亚洲/上海 默认为美国
default.timezone.id=Asia/Shanghai
#用户权限管理默认类(绝对路径)
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml
#Loader for projects
#global配置文件所在位置(绝对路径)
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
#数据库类型
database.type=mysql
#端口号
mysql.port=3306
#数据库连接IP
mysql.host=bigdata112
#数据库实例名
mysql.database=azkaban
#数据库用户名
mysql.user=root
#数据库密码
mysql.password=000000
#SSL文件名(绝对路径)
jetty.keystore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.password=000000
#Jetty主密码与keystore文件相同
jetty.keypassword=000000
#SSL文件名(绝对路径)
jetty.truststore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.trustpassword=000000
3、web 服务器用户配置
在 azkaban web 服务器安装目录 conf 目录,按照如下配置修改 azkaban-users.xml 文件,增加管理员用户。
[root@bigdata111 conf]# vi 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>
执行服务器配置:
1、进入执行服务器安装目录 conf,打开 azkaban.properties
[root@bigdata111 conf]# pwd
/opt/module/azkaban/executor/conf
[root@bigdata111 conf]# vim azkaban.properties
2、按照如下配置修改 azkaban.properties 文件。
#时区
default.timezone.id=Asia/Shanghai
#Loader for projects
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
mysql.port=3306
mysql.host=bigdata112
mysql.database=azkaban
mysql.user=root
mysql.password=000000
配置环境变量:
分别配置 web 、executor 的环境变量
#AZKABAN_WEB_HOME
export WEB_HOME=/opt/module/azkaban/server
export PATH=$PATH:$WEB_HOME/bin
#AZKABAN_EXECUTOR_HOME
export EXECUTOR_HOME=/opt/module/azkaban/executor
export PATH=$PATH:$EXECUTOR_HOME/bin
启动/停止服务:
先启动 executor 在启动 web 服务器:
azkaban-executor-start.sh
azkaban-web-start.sh
查看进程:
[root@bigdata111 ~]# jps
3601 AzkabanExecutorServer
5880 Jps
3661 AzkabanWebServer
启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443,即可访问azkaban服务了。
在登录中输入刚才在azkaban-users.xml文件中新添加的户用名及密码,即admin和admin,点击 login。
关闭进程 先关闭 web 在关闭 executor 服务器:
azkaban-web-shutdown.sh
azkaban-executor-shutdown.sh