Azkaban3.62版本搭建

Azkaban3.x版本部署

下载资料

从Azkaban的官网下载资料
第一步:cd 到需要安装的目录。
第二步: 执行 git clone https://github.com/azkaban/azkaban.git (克隆日期为2018年11月27号版本为3.6.2),将azkaban下载到当前目录。

编译

进入到Azkaban目录下,可以看到如下目录结构:
Azkaban目录结构
在此目录下执行 :

./gradlew distTar

进行编译,编译成功后会在 azkaban-*/build/distributions/ 目录下获得以下几个tar包:

*azkaban-db-3.62.0-7-g4f2f631.tar.gz
*azkaban-exec-server-3.62.0-7-g4f2f631.tar.gz
*azkaban-web-server-3.62.0-7-g4f2f631.tar.gz
*azkaban-solo-server-3.62.0-7-g4f2f631.tar.gz
*azkaban-migration-3.62.0-7-g4f2f631.tar.gz

我们本次搭建需要的tar包有:

*azkaban-db-3.62.0-7-g4f2f631.tar.gz
*azkaban-exec-server-3.62.0-7-g4f2f631.tar.gz
*azkaban-web-server-3.62.0-7-g4f2f631.tar.gz

注意:在进行编译时需要保证虚拟机能够连接上外网,否则会编译失败

安装

本次安装采用的是azkaban集群模式进行安装的,具体配置情况如下:

dsd mysql,executorServer
dsf webServer
dse executorServer

第一步:配置Mysql
Azkaban的元数据是交给Mysql进行管理的,我们需要在Mysql中建立专用的数据库用来保存Azkaban产生的元数据。具体步骤如下:
1)建库

#使用root权限进入数据库
mysql -uroot -p*******
#创建azkaban数据库
create database azkaban

#进入到azkaban数据库
use azkaban
#创建Azkaban数据库专用的用户
CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban'; 
#授权
GRANT ALL ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION; 
#刷新权限
FLUSH PRIVILEGES; 

2)导入数据
首先解压 azkaban-db-3.62.0-7-g4f2f631.tar.gz 包,该包下包含一些mysql数据库的建表语句

#进入azkaban数据库
use azkaban
#导入数据
source /home/chenyang/export/azkaban-db-3.62.0-7-g4f2f631/create-all-sql-3.62.0-7-g4f2f631.sql

第二步:配置WebServer:
1)解压 azkaban-web-server-3.62.0-7-g4f2f631.tar.gz 包到指定服务器和指定目录并且重命名为azkaban-web-server-3.62.0-7,webServer目录结构为:
azkaban-web-Server 目录结构

其中logs,extlib,plugins都是后来创建的,并且在logs目录下导入log4j.properties文件。
2)获取keystore

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是否正确?
  [否]:  是

输入 <jetty> 的密钥口令
        (如果和密钥库口令相同, 按回车):  
再次输入新口令:

注意:这里要设置的密码比较多,为了防止弄混,建议全用一样的密码,至于要让填写信息的,直接回车即可,会返回unknown。
3)配置 azkaban.properties 文件

# Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
#注意时区一定要配置       
default.timezone.id=Asia/Shanghai
# 配置用户管理的xml文件的地址 
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
#配置jetty
jetty.use.ssl=false
jetty.ssl.port=8444
jetty.keystore=keystore
jetty.password=huawang
jetty.keypassword=huawang
jetty.truststore=keystore
jetty.trustpassword=huawang
jetty.maxThreads=25
jetty.port=8082
# 配置Executor端口号
executor.port=12321
# 配置邮箱选项
mail.sender=**************
mail.host=****************
mail.user=**************
mail.password=************
job.success.email=***********
lockdown.create.projects=false
cache.directory=cache
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
#服务器类型
database.type=mysql
mysql.port=3306
#mysql服务器地址
mysql.host=dsd
#数据库名
mysql.database=azkaban
mysql.user=azkaban
#azkaban用户的密码
mysql.password=************
mysql.numconnections=100

4)配置用户
配置conf/azkaban-user.xml

<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
  <user password="admin" roles="admin" username="admin"/>
  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>

第三步:配置ExecutorServer
1)解压
azkaban-exec-server-3.62.0-7-g4f2f631.tar.gz 到指定目录下,并且重命名为:azkaban-exec-server-3.62.0-7它的目录结构为:

在这里插入图片描述
在这里插入图片描述
其中logs,extlib,如果没有自己创建就可以了,在logs文件下添加log4j.properties配置文件。还有像execution文件实在运行后自动生成的文件。
2)修改conf/azkaban.properties文件

azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
#一定要配置 
default.timezone.id=Asia/Shanghai

# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Where the Azkaban web server is located
azkaban.webserver.url=http://dsf:8082
lockdown.create.projects=false
cache.directory=cache
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# 配置Azkaban依赖
azkaban.jobtype.plugin.dir=plugins/jobtypes
#配置Mysql
database.type=mysql
mysql.port=3306
mysql.host=dsd
mysql.database=azkaban
mysql.user=azkaban
mysql.password=oiRT6J1yiiXI1cJG
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.flow.threads=30
executor.port=12321
azkaban.use.multiple.executors=true
#此项一定要配置,不然的话过滤器会检查 executor 主机空余内存是否会大于 6G,如果不足 6G,则 web-server 不会将任务交由该主机执行导致任务一直处在**prepering状态**
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

第四步:启动
1)注意azkaban集群模式必须先启动executor-server,在启动webServer

2)注意:启动时在bin目录的上一层目录启动

./bin/start-exec.sh
#注意azkaban在启动时默认不会激活executor
#需要手动激活
#执行以下命令激活executor
curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo 
#或者进入到Mysql数据库中  更改executors表中的active字段为1 进行激活
./bin/start-web.sh

2)登陆 web服务器地址:8082进行登陆

至此azkaban的搭建完成。

猜你喜欢

转载自blog.csdn.net/weixin_41647178/article/details/84753935