前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Azkaban分布安装部署

Azkaban分布安装部署

作者头像
编程那点事
发布2023-02-25 15:23:14
3500
发布2023-02-25 15:23:14
举报
文章被收录于专栏:java编程那点事
获取编译好的文件

获取编译好的安装文件上传并解压/root/hd/azkaban-3.50.0 找到三个需要的配置文件 azkaban-db/build/distributions azkaban-web-server/build/distributions azkaban-exec-server/build/distributions distributions下就是我们需要的编译后的压缩文件 把压缩文件分别分发到对应的服务器

在azkaban-db/build/distributions下 只需获取create-all-sql-0.1.0-SNAPSHOT.sql 创建数据库表

分布式multiple-executor模式安装部署
任务分配如下

HOST 角色 node1 web-server node2 mysql node3 exec-server node4 exec-server

mysql
代码语言:javascript
复制
create database azkaban_data;

grant all privileges on azkaban_data.* to 'hive'@'%' identified by 'hive';

grant all privileges on azkaban_data.* to 'hive'@'localhost' identified by 'hive';

grant all privileges on azkaban_data.* to 'hive'@'hq555' identified by 'hive';

flush privileges;

source /root/hd/create-all-sql-0.1.0-SNAPSHOT.sql ;

注意 如果导入数据过程报错 索引过长 更改数据库编码 删除所有表 重新导入数据

拷贝web-server到node1

解压

生成ssl
代码语言:javascript
复制
keytool -keystore keystore -alias jetty -genkey -keyalg RSA

注:密码和最后确认需要输入,其他默认即可。生成keystore复制到exe所在服务器为配置准备

设置web‐server

拷贝conf目录和log4j.properties

代码语言:javascript
复制
scp -r /root/azkaban-solo-server-0.1.0-SNAPSHOT/conf /root/azkaban-web-server-0.1.0-SNAPSHOT/
scp azkaban-3.42.0/azkaban-web-server/src/test/resources/log4j.properties azkaban-web-server-0.1.0-SNAPSHOT/conf/
vim azkaban-web-server-0.1.0-SNAPSHOT/conf/azkaban.properties

// 配置内容如下
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/root/hd/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/web
default.timezone.id=Asia/Shanghai // 时间修改为上海

# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/root/hd/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/azkaban-users.xml

# Loader for projects
executor.global.properties=/root/hd/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/global.properties
azkaban.project.dir=projects

#database.type=h2
#h2.path=./h2
#h2.create.tables=true
database.type=mysql
mysql.port=3306
mysql.host=hq666
mysql.database=azkaban_data
mysql.user=hive
mysql.password=hive
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
#jetty.use.ssl=true
jetty.maxThreads=25
jetty.port=8081
jetty.keystore=/root/hd/keystore
jetty.password=****
jetty.keypassword=****
jetty.truststore=/root/hd/keystore
jetty.trustpassword=****

# Azkaban Executor settings
executor.port=12321

# mail settings
mail.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=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.jobtype.plugin.dir=/root/hd/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/plugins/jobtypes

#启用multiple-executor模式
azkaban.use.multiple.executors=true

#在每次分发job时,先过滤出满足条件的executor,然后再做比较筛选
#如最小剩余内存,MinimumFreeMemory,过滤器会检查executor空余内存是否会大于6G,如果不足6G,则web-server不会将任务交由该executor执行。可参考Azkaban Github源码
#如CpuStatus,过滤器会检查executor的cpu占用率是否达到95%,若达到95%,web-server也不会将任务交给该executor执行。可参考Azkaban Github源码。
#参数含义参考官网说明 http://azkaban.github.io/azkaban/docs/latest/#configuration
#由于是虚拟机,不需要过滤,只需要比较即可
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
#某个任务是否指定了executor id
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
#内存
azkaban.executorselector.comparator.Memory=1
#最后一次被分发
azkaban.executorselector.comparator.LastDispatched=1
#CPU
azkaban.executorselector.comparator.CpuUsage=1

注意涉及到路径都写绝对路径

设置plugins/jobtypes
代码语言:javascript
复制
mkdir -p plugins/jobtypes
vim commonprivate.properties
azkaban.native.lib=false
execute.as.user=false
添加用户azkaban-users.xml
代码语言:javascript
复制
<user username="admin" password="admin" roles="admin,metrics"/>
<user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
<user password="metrics" roles="metrics" username="metrics"/>
<role name="admin" permissions="ADMIN"/>
<role name="metrics" permissions="METRICS"/>
拷贝exec-server到node3、node4

解压

从web-server拷贝conf目录、plugins目录到executor‐server下

注意conf/azkaban.properties配置的路径需要改 如下

代码语言:javascript
复制
# 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=/root/hd/azkaban-exec-server-0.1.0-SNAPSHOT/conf/azkaban-users.xml
# Loader for projects
executor.global.properties=/root/hd/azkaban-exec-server-0.1.0-SNAPSHOT/conf/global.properties
azkaban.project.dir=/root/hd/azkaban-exec-server-0.1.0-SNAPSHOT/bin/projects
#database.type=h2
#h2.path=./h2
#h2.create.tables=true
database.type=mysql
mysql.port=3306
mysql.host=hq666
mysql.database=azkaban_data
mysql.user=hive
mysql.password=hive
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=true
jetty.maxThreads=25
jetty.port=8081
jetty.keystore=/root/hd/keystore
jetty.password=****
jetty.keypassword=****
jetty.truststore=/root/hd/keystore
jetty.trustpassword=****
# Azkaban Executor settings
executor.port=12321
# mail settings
mail.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=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.jobtype.plugin.dir=/root/hd/azkaban-exec-server-0.1.0-SNAPSHOT/plugins/jobtypes
#启用multiple-executor模式
azkaban.use.multiple.executors=true
#在每次分发job时,先过滤出满足条件的executor,然后再做比较筛选
#如最小剩余内存,MinimumFreeMemory,过滤器会检查executor空余内存是否会大于6G,如果不足6G,则web-server不会将任务交由该executor执行。可参考Azkaban Github源码
#如CpuStatus,过滤器会检查executor的cpu占用率是否达到95%,若达到95%,web-server也不会将任务交给该executor执行。可参考Azkaban Github源码。
#参数含义参考官网说明 http://azkaban.github.io/azkaban/docs/latest/#configuration
#由于是虚拟机,不需要过滤,只需要比较即可
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
#某个任务是否指定了executor id
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
#内存
azkaban.executorselector.comparator.Memory=1
#最后一次被分发
azkaban.executorselector.comparator.LastDispatched=1
#CPU
azkaban.executorselector.comparator.CpuUsage=1
在azkaban_data库executors表中添加executor
代码语言:javascript
复制
mysql> insert into executors(host,port,active) values("192.168.222.110",12321,1);
mysql> insert into executors(host,port,active) values("192.168.222.111",12321,1);

注:这里把active设置为1(激活状态)。

启动node1 web-server、node3 exec-server、node4 exec-server

先启动exec-server,再启动 web-server

代码语言:javascript
复制
./start-exec.sh 
./start-web.sh
浏览器访问
代码语言:javascript
复制
https://ip:8443
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取编译好的文件
  • 分布式multiple-executor模式安装部署
  • 任务分配如下
  • mysql
  • 拷贝web-server到node1
  • 生成ssl
  • 设置web‐server
  • 设置plugins/jobtypes
  • 添加用户azkaban-users.xml
  • 拷贝exec-server到node3、node4
  • 从web-server拷贝conf目录、plugins目录到executor‐server下
  • 在azkaban_data库executors表中添加executor
  • 启动node1 web-server、node3 exec-server、node4 exec-server
  • 浏览器访问
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档