Azkaban的(集群)分布式下载,编译,安装

azkaban轻量级工作流调度系统,由多个组件组成,其中最基础有三部分,分别为db、web-server、exec-server。web-server提供了可视化的界面管理,作业配置;exec-server则是来执行具体的作业,该组件可配置集群。

Azkaban三种部署模式,

solo-server模式【单机】

two-server模式【2执行器】

分布式multiple-executor模式【分布式】

博主已经提供好了编译好的压缩包直接下载使用即可

此处提供  已经编译好的 Azkaban  所有的应用包,包括Mysql 5.7,JDK1.8

链接:https://pan.baidu.com/s/1s43YGXoa4cMFMkiIpCFrHw 
提取码:nph6

如需自己编译,请按照如下步骤 ↓↓↓↓↓↓↓↓↓↓↓↓↓

---------------------------------------------------------------------------------------------------

第一步:需要下载源码,进行编译

1、下载源码

从github上下载azkaban官方源码,目前最新release为3.73.1

git clone git@github.com:azkaban/azkaban.git
git 拉取之后会发现,会自动创建一个azkaban文件夹,所有的编译工作 都进入azkaban文件夾下

2、编译

切换到 azkaban下面的目录 

cd azkaban

然后依次执行如下命令:

./gradlew installDist

./gradlew test

./gradlew build -x test

./gradlew build

./gradlew clean

./gradlew installDist

./gradlew test

./gradlew distTar

每一个运行完毕会显示  BUILD SUCCESSFUL in 时间

bulid成功之后

编译好的文件分别在自 azkaban文件夹下面,

Azkaban需要用的数据库

/azkaban/azkaban-db/build/distributions/azkaban-db-3.73.1.tar.gz

Azkaban 需要的执行服务
/azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.73.1.tar.gz

Azkaban需要执行的web服务

/azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.73.1.tar.gz

Azkaban需要执行的单节点服务压缩包

/azkaban/azkaban-solo-server/build/distributions/azkaban-solo-server-3.73.1.tar.gz

____________________________________________________________________________________________________

Azkaban的分布式安装:

第①步:保证JDK和MySql服务皆可用

MySql 5.7 安装请见 :https://blog.csdn.net/weixin_38822045/article/details/91447250

分配分布式 ,组件的安装的分配

服务器服务分配
192.168.1.129

mysql、azkaban-web-server、

azkaban-exec-server

192.168.1.130azkaban-exec-server
192.168.1.131azkaban-exec-server

 

 

 

 

 

第②步:先配置192.168.1.212的Mysql,取出db压缩包中的 create-all-sql-3.73.1.sql文件

创建 Mysql的Azkaban的数据库

mysql -u root -p

mysql> create database azkaban character set utf8;

mysql> use azkaban;

#创建用户

mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';

#给用户授权

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

mysql>

;#创建表

运行: source create-all-sql-3.73.1.sql

第③步:解压压缩文件

tar -zxvf azkaban-web-server-3.73.1.tar.gz

tar -zxvf azkaban-exec-server-3.73.1.tar.gz

第④步:生成SSL

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

注:密码和最后确认需要输入,其他默认即可。需要输入y,以上配置完成之后会在当前目录生成一个keystore文件;记住位置,后续要用。

将生成 keystore 拷贝到 /azkaban-web-server-3.73.1/bin/ 的目录下面

第⑤步:编辑azkaban-web‐server-3.73.1配置文件

编辑azkaban-web-server-3.73.1配置文件:vi /mnt/azkaban-web-server-3.73.1/conf/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
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/mnt/azkaban-web-server-3.73.1/conf/azkaban-users.xml
# Loader for projects
executor.global.properties=/mnt/azkaban-web-server-3.73.1/conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
# Where the Azkaban web server is located
azkaban.webserver.url=http://192.168.1.212:8081
# mail settings
mail.sender=
mail.host=

azkaban.jobtype.plugin.dir=/mnt/azkaban-web-server-3.73.1/plugins/jobtypes

# 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=8081
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban plugin settings
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=192.168.1.212
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.flow.threads=30

executor.port=12321
jetty.keystore=keystore
jetty.password=server123
jetty.keypassword=server123
jetty.truststore=keystore
jetty.trustpassword=server123

#Multiple Executor
azkaban.use.multiple.executors=true
#azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

# 过滤器会检查 executor 主机空余内存是否会大于 6G,如果不足 6G,则 web-server 不会将任务交由该主机执行
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

第⑥步:至此Azkaban的web-server配置文件修改成功

将上述azkaban-web-server配置文件拷贝到Azkaban-exec-server中替换azkaban.properties配置【web和exec 配置文件可相同】

接下来在/azkaban-web-server-3.73.1文件夹下创建 /plugins/jobtypes

同时将/azkaban-exec-server-3.73.1/plugins/jobtypes/commonprivate.properties

拷贝到 /azkaban-web-server-3.73.1/plugins/jobtypes文件下面

将配置commonprivate.properties 添加一行配置

azkaban.native.lib=false

此时commonprivate.properties 中有两条记录:

execute.as.user=false azkaban.native.lib=false

将次配置文件授权 chmod 755 commonprivate.properties

替换掉azkaban-web-server-3.73.1/plugins/jobtypes/和azkaban-exec-server-3.73.1/plugins/jobtypes下面的commonprivate.properties

第⑦步:拷贝当前服务器上的Azkaban-web-server和Azkaban-exec-server

将当前服务器上的解压修改后的安装包 拷贝到你要安装集群的服务器上,不用做任何修改。

第⑧步:启动Azkaban-exec-server

切记先启动每台服务器Azkabn-exec-server,同时激活服务, 最后再启动Azkaban-web-server 服务器。
[root@bigdata001 azkaban-exec-server-3.73.1]# ./bin/start-exec.sh 

查看启动日志
[root@bigdata001 azkaban-exec-server-3.73.1]# more executorServerLog__2019-06-27+12:44:55.out

日志没有问题,就开始激活执行器:
[root@bigdata001 azkaban-exec-server-3.73.1]# curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo

看到"status":"success" 即激活成功。
备注:切记在bin目录同级别启动,否则 会出现多种问题......
下面是官网说明:同级目录bin启动

同样的操作步骤,分别启动其他的服务器的azkaban-exec-server上的服务,然后然后激活执行器

最后到第一台服务器上,cd /mnt/azkaban-web-server-3.73.1
[root@bigdata001 azkaban-web-server-3.73.1]# ./bin/start-web.sh 

第⑨步:访问192.168.1.212:8081                       【配置文件指定】

默认用户名:azkaban                              密码:azkaban                   【用戶配置文件修改】

上传简单Demo,测试成功,用法见文末

查看日志,执行,任务,亲测成功

至此Azkaban的分布式集群模式安装完毕。

—————————————错误集结———————————————

错误①,查看日志发现(此处由于配置文件配置非全定路径,而是绝对路径,找不到,所以报错,

发生原因:切换到bin目录里面启动导致:

错误②,查看日志发现,此处无法找到执行者,查看Mysql数据库,select * from azkaban.executors 表用户为空,

手动插入:insert into azkaban.executors(host,port,active) values("当前服务IP",12321,1);

如果是集群 记得将集群的3个IP全部插入到当前表中

insert into azkaban.executors(host,port,active) values("机器1IP",12321,1);
insert into azkaban.executors(host,port,active) values("机器2IP",12321,1);
insert into azkaban.executors(host,port,active) values("机器3IP",12321,1);

再次启动,启动成功:如下图所示

访问 192.168.1.129:8081 【发现样式丢失,还是配置文件的路径问题,需要配置全路径】

发生原因:切换到bin目录里面启动导致

将azkaban.properties

web.resource.dir=/usr/liuwunan/Azkaban/azkaban-web-server-3.73.1/web    修改为全路径即可,登录用户名密码,在

/usr/liuwunan/Azkaban/azkaban-web-server-3.73.1/conf/azkaban-users.xml 配置文件中,可以自己填写

由此可知Azkaban的web-Server 服务启动了,由于负责执行任务的为exec-server服务,所以将web-server的conf中的azkaban.properties内容复制一份到exec-server的conf下的azkaban.properties的中【完全替换】。

然后将服务器1 上面的azkaban-exec-server-3.7.3.1 拷贝到  服务器2,服务器3上去,为了简单方便,同样可以将存放当前Azkaban所有服务的总文件夹 拷贝到 机器2,机器3上面去。在启动的时候,机器1 ,机器2,机器3先启动 azkaban-exec-server-3.7.3.1,然后再去启动 azkaban-web-server-3.7.3.1【切记:先启动exec-server ,最后启动web-server】

错误④

 

只有执行了激活执行器才能进行  工作流执行,否则job任务会一直是等待状态,日志会报错。

将上述启动exec-server的服务分别用同样的方法,去机器2,机器3上面启动,然后最后去机器1上启动 web-server

写一个简单的Job 提交到 Azkaban的服务器上运行。

 

———————————————————————————————————————————————————

此处遇到遇到一个大坑就是 ,提交任务一直都是准备状态,始终没有执行,查阅百度,很多人都是这种情况。异常信息为

后续得知,就是因为 执行器没有激活,无法执行,运行下面命令即可

[root@localhost azkaban-exec-server-3.73.1]# curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo 

切记和bin同级别目录,否则会失败

整体的执行顺序为: 1.分别启动exec-server服务器,2.然后按照顺序激活exec-server,3最后启动web-server服务器

Azkaban的使用,和工作流程使用请见 https://blog.csdn.net/weixin_38822045/article/details/89147178

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值