版本说明: Azkaban:3.7.2
一、源码包的下载
GitHub下载:https://github.com/azkaban/azkaban/archive/3.72.1.tar.gz
二、源码包的编译
1. Gradle的下载
azkaban源码包的编译需要用到Gradle,且该azkaban的编译需要使用**gradle-4.6-all.zip**该版本,使用高版本会有异常问题
官网下载地址:https://gradle.org/releases/
找到版本(4.6),下载 binary-only即可:
2. Gradle的安装
上传到linux服务器上(最好是一台能够连接互联网的linux服务器),然后进行解压:
解压完成后,进入到解压后的目录中:cd ./gradle-4.6/
输入命令查看是否正确安装以及安装版本信息:bin/gradle -version
如果出现上述界面,则说明安装成功
3. Azkaban包上传
将下载的azkaban源码包进行上传至服务器指定的目录下(自己随便定义),然后解压:
解压后会产生一个azkaban的文件目录
4.Azkaban的编译
进入到解压后的目录中,可以看到如下的目录结构:
这里我们主要关注三个文件夹即可,分别是:
- azkaban-db
- azkaban-exec-server
- azkaban-web-server
首先进入到azkaban-db该目录下,执行命令/opt/gradle-4.6/bin/gradle build installDist
开始进行编译,如果最后看到如下页面则说明编译完成:
同样,在返回进入到azkaban-exec-server目录下,同样执行上述命令开始编译:
最终如果输入如下界面,说明,成功编译完成:
同样,再返回进入到azkaban-web-server目录下,同样执行上述命令开始编译:
这期间如果编译遇到错误,很可能就是网络不稳定的原因,多执行几遍就好了
三、Azkaban的安装
分别进入到目录下,查看是否会有生成的目录:
- azkaban-db/build/install/azkaban-db

- azkaban-exec-server/build/install/azkaban-exec-server

- azkaban-web-server/build/install/azkaban-web-server

将这三个文件夹拷贝出来,后面主要用到的就是三个文件夹,统一放到一个文件夹中,分别是:
- azkaban-web-server/build/install/azkaban-web-server
- azkaban-exec-server/build/install/azkaban-exec-server
- azkaban-db/build/install/azkaban-db
1. 创建Mysql数据库
需要选定一个数据库,该数据库可以是外部的,可以是本地安装一个,然后创建azkaban数据库,用于存放azkaban元数据信息,并导入脚本初始化元数据信息:
MySQL [(none)]> create database azkaban;MySQL [(none)]> use azkaban;MySQL [(azkaban)]> source /opt/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql;
2. Azkaban-exec-server端的配置
进入到azkaban-exec-server目录下,编译conf/azkaban.properties 文件
# Azkaban Personalization Settingsazkaban.name=Testazkaban.label=My Local Azkabanazkaban.color=#FF3601azkaban.default.servlet.path=/indexweb.resource.dir=web/default.timezone.id=Asia/Shanghai# Azkaban UserManager classuser.manager.class=azkaban.user.XmlUserManageruser.manager.xml.file=conf/azkaban-users.xml# Loader for projectsexecutor.global.properties=conf/global.propertiesazkaban.project.dir=projects# Velocity dev modevelocity.dev.mode=false# Azkaban Jetty server properties.jetty.use.ssl=falsejetty.maxThreads=25jetty.port=8081# Where the Azkaban web server is locatedazkaban.webserver.url=http://localhost:8081# mail settingsmail.sender=mail.host=# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.# enduser -> myazkabanhost:443 -> proxy -> localhost:8081# when this parameters set then these parameters are used to generate email links.# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.# azkaban.webserver.external_hostname=myazkabanhost.com# azkaban.webserver.external_ssl_port=443# azkaban.webserver.external_port=8081job.failure.email=job.success.email=lockdown.create.projects=falsecache.directory=cache# JMX statsjetty.connector.stats=trueexecutor.connector.stats=true# Azkaban plugin settingsazkaban.jobtype.plugin.dir=plugins/jobtypes# Azkaban mysql settings by default. Users should configure their own username and password.database.type=mysqlmysql.port=3306mysql.host=10.0.107.132mysql.database=azkabanmysql.user=rootmysql.password=123456mysql.numconnections=100# Azkaban Executor settingsexecutor.maxThreads=50executor.flow.threads=30executor.port=12321
3. Azkaban web端的信息采集
进入到azkaban-web-server目录下,执行命令keytool -keystore keystore -alias jetty -genkey -keyalg RSA
其余的都为空,直接回车
完成之后会看到当前目录下会生成一个ketstore文件
4. 交互式命令生成时区
输入命令tzselect
最后会在该目录下生成时区文件:/usr/share//zoneinfo/Asia/Shanghai
拷贝改文件到 etc/localtime/下面,覆盖系统本地时区文件
5. Azkaban-web-server端的配置
# Azkaban Personalization Settingsazkaban.name=Testazkaban.label=My Local Azkabanazkaban.color=#FF3601azkaban.default.servlet.path=/index# 默认根web目录web.resource.dir=web/# 默认时区 Asia/Shanghaidefault.timezone.id=Asia/Shanghai# Azkaban UserManager classuser.manager.class=azkaban.user.XmlUserManageruser.manager.xml.file=conf/azkaban-users.xml# Loader for projectsexecutor.global.properties=conf/global.propertiesazkaban.project.dir=projects# Velocity dev modevelocity.dev.mode=false# Azkaban Jetty server properties.jetty.use.ssl=truejetty.maxThreads=25#jetty.port=8081jetty.ssl.port=8443jetty.keystore=/opt/azkaban/azkaban-web-server/keystorejetty.truststore=/opt/azkaban/azkaban-web-server/keystorejetty.password=azkabanjetty.keypassword=azkabanjetty.trustpassword=azkaban# Azkaban Executor settingsexecutor.port=12321# mail settingsmail.sender=mail.host=# User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.# enduser -> myazkabanhost:443 -> proxy -> localhost:8081# when this parameters set then these parameters are used to generate email links.# if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.# azkaban.webserver.external_hostname=myazkabanhost.com# azkaban.webserver.external_ssl_port=443# azkaban.webserver.external_port=8081job.failure.email=job.success.email=lockdown.create.projects=falsecache.directory=cache# JMX statsjetty.connector.stats=trueexecutor.connector.stats=true# Azkaban mysql settings by default. Users should configure their own username and password.database.type=mysqlmysql.port=3306mysql.host=10.0.107.132mysql.database=azkabanmysql.user=rootmysql.password=123456mysql.numconnections=100#Multiple Executorazkaban.use.multiple.executors=true#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatusazkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatusazkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1azkaban.executorselector.comparator.Memory=1azkaban.executorselector.comparator.LastDispatched=1azkaban.executorselector.comparator.CpuUsage=1
6. web登录用户配置
编辑文件azkaban-web-server/conf/azkaban-users.xml
<azkaban-users><user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/><user password="metrics" roles="metrics" username="metrics"/><!-- 设置登录web地址的账号密码 --><user username="admin" password="admin" roles="admin,metrics" /><user username="azkaban" password="azkaban" roles="admin" groups="azkaban" /><role name="admin" permissions="ADMIN"/><role name="metrics" permissions="METRICS"/></azkaban-users>
四、服务启动验证
1. 启动azkaban-exec-server
进入到azkaban-exec-server目录下,并执行命令bin/start-exec.sh
注意:这里启动必须通过在父目录下进行执行该命令启动,不能进入到bin目录下执行启动脚本
[root@host-10-0-68-82 azkaban]# cd azkaban-exec-server/[root@host-10-0-68-82 azkaban-exec-server]# bin/start-exec.sh
查看启动日志,如果出现如下截图说明启动成功:
验证:输入命令 curl -G "localhost:$(<./executor.port)/executor?action=activate"&&echo
如果返回如下信息说明,启动成功:
[root@host-10-0-68-82 azkaban-exec-server]# curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo{"status":"success"}
2. 启动azkaban-web-server
进入到azkabanw-web-server目录下,并执行命令bin/azkaban-web-start.sh
查看日志,出现如上页面,则说明启动成功
3. 登录验证
浏览器输入地址:https://node1:8443/index
输入账号密码登录:
账号:admin
密码:admin
说明安装成功
