Azkaban的安装部署

一、Azkaban

Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通过配置中的 Dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-05vCtaRE-1645612618765)(.\Azkaban\Azkaban架构.png)]

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

二、安装部署

Azkaban的下载地址:http://azkaban.github.io/downloads.html

1、安装包准备

安装Azkaban之前需要安装mysql,之后需要准备三个组件包,其中version代表版本号,其具体如下:

  1. azkaban-web-server-version.tar.gz: Azkaban Web 服务器
  2. azkaban-executor-server-version.tar.gz: Azkaban 执行服务器
  3. **azkaban-sql-script-version.tar.gz:**Azkaban的sql 执行脚本

2、安装Azkaban

1.解压安装包

#切换到指定文件夹中
cd /opt/software
#创建文件夹
mkdir azkaban
#切换到安装包所在文件夹执行解压命令
#解压Azkaban Web服务器
tar -zxvf azkaban-web-server-version.tar.gz -C /opt/software/azkaban/
#解压Azkaban执行服务器
tar	-zxvf azkaban-executor-server-version.tar.gz -C /opt/software/azkaban/
#解压Azkaban的sql执行脚本
tar -zxvf azkaban-sql-script-version.tar.gz -C /opt/software/azkaban/

2.文件重命名

#切换到指定文件夹中
cd /opt/software/azkaban
#文件夹重命名
mv azkaban-web-version/ server 
mv azkaban-executor-version/ executor

3.azkaban脚本导入

#登录mysql
mysql -uroot -pok
#创建Azkaban数据库
mysql> create database azkaban;
#切换到Azkaban数据库
mysql> use azkaban;
#Azkaban脚本导入,其中version为Azkaban的版本号
mysql>source /opt/software/azkaban/azkaban-version/create-all-sql-version.sql

3、生成密钥对

Keytool 是 java 数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。

  1. -keystore 指定密钥库的名称及位置(产生的各类信息将存在.keystore 文件中)
  2. -genkey(或者-genkeypair) 生成密钥对
  3. -alias 为生成的密钥对指定别名,如果没有默认是 mykey
  4. -keyalg 指定密钥的算法 RSA/DSA 默认是 DSA
#生成秘钥对
keytool -keystore keystore -alias jetty - genkey -keyalg RSA
#--------------------------------------------------------------------------
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么? [Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么? [Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么? [Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 是否正确?
[]: y

输入 <jetty> 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
#--------------------------------------------------------------------------
#将keystore拷贝到azkaban web服务器根目录中
mv keystore /opt/module/azkaban/server/

4、相关配置

1.修改时区

#修改时区
tzselect
#------------------------------------------------------------------------------------
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
Please select a country.
 1) Afghanistan		  18) Israel		    35) Palestine
 2) Armenia		  19) Japan		    36) Philippines
 3) Azerbaijan		  20) Jordan		    37) Qatar
 4) Bahrain		  21) Kazakhstan	    38) Russia
 5) Bangladesh		  22) Korea (North)	    39) Saudi Arabia
 6) Bhutan		  23) Korea (South)	    40) Singapore
 7) Brunei		  24) Kuwait		    41) Sri Lanka
 8) Cambodia		  25) Kyrgyzstan	    42) Syria
 9) China		  26) Laos		    43) Taiwan
10) Cyprus		  27) Lebanon		    44) Tajikistan
11) East Timor		  28) Macau		    45) Thailand
12) Georgia		  29) Malaysia		    46) Turkmenistan
13) Hong Kong		  30) Mongolia		    47) United Arab Emirates
14) India		  31) Myanmar (Burma)	    48) Uzbekistan
15) Indonesia		  32) Nepal		    49) Vietnam
16) Iran		  33) Oman		    50) Yemen
17) Iraq		  34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

	China
	Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:	Mon Feb 14 18:32:25 CST 2022.
Universal Time is now:	Mon Feb 14 10:32:25 UTC 2022.
Is the above information OK?
1) Yes
2) 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
#------------------------------------------------------------------------------------
#拷贝时区覆盖本地时区配置
cp /usr/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#同步时间
sudo date -s '2022-02-14 17:39:30'

2.Web服务器配置

#切换到azkaban的conf文件中
cd /opt/software/azkaban/azkaban_version/conf
#编辑配置文件,修改以下内容
vim azkaban.properties
#-------------------------------------------------------------
#Azkaban Personalization Settings
#服务器 UI 名称,用于服务器上方显示的名字
azkaban.name=Test
#描述
azkaban.label=My Local Azkaban
#UI 颜色
azkaban.color=#FF3601 
azkaban.default.servlet.path=/index
#默认 web server 存放 web 文件的目录
web.resource.dir=/opt/module/azkaban/server/web/
#默认时区,已改为亚洲/上海 默认为美国
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class 
user.manager.class=azkaban.user.XmlUserManager
#用户权限管理默认类(绝对路径)
user.manager.xml.file=/opt/software/azkaban/azkaban_version/conf/azkaban-users.xml

#Loader for projects
#global 配 置 文 件 所 在 位 置 ( 绝 对 路 径 ) 
executor.global.properties=/opt/software/azkaban/azkaban_version/conf/global.pro perties
azkaban.project.dir=projects
#数据库类型
database.type=mysql
#端口号
mysql.port=3306
#数据库连接 IP
mysql.host=single01
#数据库实例名
mysql.database=azkaban
#数据库用户名
mysql.user=root
#数据库密码
mysql.password=ok
#最大连接数
mysql.numconnections=100

# Velocity dev mode velocity.dev.mode=false

# Azkaban Jetty server properties.
# Jetty 服务器属性.
#最大线程数
jetty.maxThreads=25
#Jetty SSL 端口
jetty.ssl.port=8443
#Jetty 端口
jetty.port=8081
#SSL 文件名(绝对路径)
jetty.keystore=/opt/software/azkaban/server/keystore
#SSL 文件密码
jetty.password=000000
#Jetty 主密码与 keystore 文件相同
jetty.keypassword=000000
#SSL 文件名(绝对路径)
jetty.truststore=/opt/module/azkaban/server/keystore
#SSL 文件密码
jetty.trustpassword=000000

# 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
#------------------------------------------------------------------------------

3.增加管理员用户

#编辑用户配置文件
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>

4.执行服务器配置

#切换至指定文件夹中
cd /opt/software/azkaban/executor/conf 
#编辑配置文件,修改以下内容
vim azkaban.properties
#------------------------------------------------------------------------------------
#Azkaban
#时区default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
#jobtype 插件所在位置
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects 
executor.global.properties=/opt/software/azkaban/executor/conf/global.properties
azkaban.project.dir=projects

database.type=mysql 
mysql.port=3306 
mysql.host=single01
mysql.database=azkaban 
mysql.user=root 
mysql.password=ok 
mysql.numconnections=100

# Azkaban Executor settings
#最大线程数
executor.maxThreads=50
#端口号(如修改,请与 web 服务中一致)
executor.port=12321
#线程数
executor.flow.threads=30
#------------------------------------------------------------------------------------

5.启动服务

#切换到指定文件夹中
cd /opt/software/azkaban/executor
#启动Executor服务器
bin/azkaban-executor-start.sh
#切换到指定文件夹中
cd /opt/software/azkaban/server
#启动Web 服务器
bin/azkaban-web-start.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝域时空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值