Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
安装前准备
(1)将Azkaban Web服务器、Azkaban执行服务器要安装机器的/opt/software目录下:
- azkaban-web-server-2.5.0.tar.gz
- azkaban-executor-server-2.5.0.tar.gz
- azkaban-sql-script-2.5.0.tar.gz
- mysql-libs.zip
(2)目前azkaban只支持 mysql作为元数据库,需安装mysql,本文档中默认已安装好mysql服务器
安装Azkaban
(1)在/opt/module/目录下创建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目录下
解压完成后的文件夹如下图所示:
(3)初始化Azkaban的元数据库
登录mysql,创建azkaban的数据库,并执行脚本create-all-sql-2.5.0.sql,如下所示:
mysql> create database azkaban; Query OK, 1 row affected (0.00 sec) mysql> use azkaban; Database changed mysql> source /opt/module/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
|
创建SSL配置
(1)生成 keystore的密码及相应信息
[root@cdh02 azkaban]$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA 输入keystore密码: 再次输入新密码: 您的名字与姓氏是什么? [Unknown]: 您的组织单位名称是什么? [Unknown]: 您的组织名称是什么? [Unknown]: 您所在的城市或区域名称是什么? [Unknown]: 您所在的州或省份名称是什么? [Unknown]: 该单位的两字母国家代码是什么 [Unknown]: CN CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗? [否]: y 输入<jetty>的主密码 (如果和 keystore 密码相同,按回车) :
|
(2)将keystore 考贝到 azkaban web服务器根目录中
Web服务器配置
(1)进入azkaban web服务器安装目录 conf目录,修改azkaban.properties文件
(2)按照如下配置修改azkaban.properties文件
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color= azkaban.default.servlet.path=/index
web.resource.dir=/opt/module/azkaban/azkaban-web-2.5.0/web
default.timezone.id=Asia/Shanghai
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/opt/module/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml
executor.global.properties=/opt/module/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects
database.type=mysql mysql.port=3306 mysql.host=cdh01 mysql.database=azkaban mysql.user=root
mysql.password=123qwe mysql.numconnections=100
velocity.dev.mode=false
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/opt/module/azkaban/azkaban-web-2.5.0/keystore
jetty.password=123qwe
jetty.keypassword=123qwe
jetty.truststore=/opt/module/azkaban/azkaban-web-2.5.0/keystore
jetty.trustpassword=123qwe
executor.port=12321
mail.sender=xxxxxxxx@163.com
mail.host=smtp.163.com
mail.user=xxxxxxxx
mail.password=**********
job.failure.email=xxxxxxxx@163.com
job.success.email=xxxxxxxx@163.com lockdown.create.projects=false
cache.directory=cache
|
(3)web服务器用户配置
在azkaban web服务器安装目录 conf目录,按照如下配置修改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>
|
executor服务器配置
(1)进入executor安装目录,修改azkaban.properties
default.timezone.id=Asia/Shanghai
azkaban.jobtype.plugin.dir=./../plugins/jobtypes
executor.global.properties=/opt/module/azkaban/azkaban-executor-2.5.0/conf/global.properties azkaban.project.dir=projects database.type=mysql mysql.port=3306 mysql.host=cdh01 mysql.database=azkaban mysql.user=root mysql.password=123qwe mysql.numconnections=100
executor.maxThreads=50 executor.port=12321 executor.flow.threads=30
|
启动web服务器
[root@cdh02 azkaban-web-2.5.0]
|
启动executor服务器
[root@cdh02 azkaban-executor-2.5.0]
|
公众号『大数据技术与数仓』,回复『资料』领取大数据资料包