Azkaban4.0.0搭建以及错误记录
4.0.0最大的改动就是支持k8s容器化部署,同时部分功能进行了恢复,之前老版本好用的功能在3.9.0版本后被取代了,现在恢复,目前测试下来azkaban4.0还是很稳定的。
Azkaban4.0.0搭建以及错误记录
4.0.0最大的改动就是支持k8s容器化部署,同时部分功能进行了恢复,之前老版本好用的功能在3.9.0版本后被取代了,现在恢复,目前测试下来azkaban4.0还是很稳定的。我不理解但我大受震撼,为啥好用的功能取消掉又恢复呢?而且咱就是说,azkaban原来一个轻量级的调度框架,现在为啥越来越难用,搭建的过程中各种bug,有这时间为啥不用DS呢。
环境搭建准备
azkaban3.0以后呢以及不支持安装包安装了。都是tar包,需要自己下载解压编译。(注意,这里默认电脑上面自带jdk8和mysql以及git环境,没有的请先安装,mysql8的话注意更换驱动)
1.下载tar包
下载地址:https://github.com/azkaban/azkaban/releases
下载完成后上传到服务器,开始操作
解压
tar -zxvf /路径/压缩包名 -C /目的路径
解压完成后将解压好的文件夹取一个方便的名字
mv /解压后的文件名 /新的文件名
下载完成后,开始编译azkaban内部的打包方式是gradle,azkaban在编译的过程中会自动根据版本的配置下载对应的gradle,但是下载速度感人,我们可以去解压后的文件下的/gradle/wrapper/gradle-wrapper.properties查看对应的gradle的版本,手动下载。
wget https://services.gradle.org/distributions/gradle-版本号.zip
修改配置文件中的gradle-wrapper.properties中的 distributionUrl属性,指明使用本地的 gradle
distributionUrl=gradle-版本号.zip
好了,我们可以开始build
./gradlew build installDist -x test
失败了就多来几次,实在不行,咱就找个编译好的包,安装就完了,咱不受这气
编程成功后
关键性的包就3个:db,exec,web
db里面存放的是azkaban配置的sql文件
exec就是运行的executor端服务了,也就是真正执行流的地方
web就是azkaban的web端服务了
这里补充一点,自己学习用也尽量不要用solo,可以在一台机器上搭建multiple executor模式,只不过是一个exec,exec和web在一个节点上罢了,但是你可以感受一下配置是咋配的哦,以后要搭建集群也好搭建。
分别解压这三个包,改名字
tar -zxvf /文件路径/azkaban-db-0.1.0-SNAPSHOT.tar.gz.tar.gz -C /目标路径
tar -zxvf /文件路径/azkaban-exec-0.1.0-SNAPSHOT.tar.gz.tar.gz -C /目标路径
tar -zxvf /文件路径/azkaban-web-0.1.0-SNAPSHOT.tar.gz.tar.gz -C /目标路径
mv azkaban-db-0.1.0-SNAPSHOT db
mv azkaban-exec-0.1.0-SNAPSHOT exec
mv azkaban-web-0.1.0-SNAPSHOT web
环境搭建
好了,到这一步就可以正式开始搭建了,不要聊了,不要聊了,先上DJ,先上DJ
配置Mysql
mysql -h ip地址 -P 3306 -u 用户名 -p密码(这里没有空格)
create database azkaban
use azkaban
source /目录地址/db/create-all-sql-0.1.0-SNAPSHOT.sql
sql脚本执行好以后。show tables,看看里面有没有表
创建ssl配置:
生成 keystore 的密码及相应信息的密钥库
cd /opt/module/azkaban
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
输入 keystore 密码:123456
再次输入新密码: 123456
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?
[否]: y
输入的主密码
(如果和 keystore 密码相同,按回车):
再次输入新密码:
mv keystore /目标路径(web路径下)
开始配置web服务的配置文件:
# Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/opt/module/azkaban/web/web/
default.timezone.id=Asia/Shanghai
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/opt/module/azkaban/web/conf/azkaban-users.xml
# Loader for projects
executor.global.properties=/opt/module/azkaban/exec/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 SSL 端口
jetty.ssl.port=8443
#Jetty 端口
jetty.port=8081
#SSL 文件名(绝对路径)
jetty.keystore=/opt/module/azkaban/web/keystore
#SSL 文件密码
jetty.password=123456
#Jetty 主密码与 keystore 文件相同
jetty.keypassword=123456
#SSL 文件名(绝对路径)
jetty.truststore=/opt/module/azkaban/web/keystore
#SSL 文件密码
jetty.trustpassword=123456
# Azkaban Executor settings
executor.port=12321
# Azkaban Executor settings
# 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 mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
#Multiple Executor
azkaban.use.multiple.executors=true
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus//过滤掉executor的限制,不然会报错
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1
配置azkaban-users.xml
<azkaban-users>
<user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
<user password="metrics" roles="metrics" username="metrics"/>
<user username="admin" password="admin" roles="admin" />
<role name="admin" permissions="ADMIN"/>
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
配置executor服务的配置文件
# 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=conf/azkaban-users.xml
# Loader for projects
executor.global.properties=/opt/module/azkaban/exec/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://localhost:8081
# 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=/目标路径/plugins/jobtypes(这里要写绝对路径,别问,问就是都是泪水)
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
azkaban.executor.runtimeProps.override.eager=false
进入jobtypes目录下配置commonprivate.properties
#添加一行
azkaban.native.lib = false
启动服务
./azkaban/exec/bin/start.sh
./azkaban/web/bin/start.sh
启动发现访问不了
jps发现没有web服务,查看日志发现没有找到exec服务,启动失败
进入数据库中,将executors的表里面对应的active字段改为1,多exec下,让那个生效就该那个
./azkaban/exec/bin/shutdown.sh 关闭exec服务,重启一下,这里要注意,无论做了那种配置的修改,修改前最好是将服务停掉,修改完在启动
./azkaban/exec/bin/start.sh
curl -G "exec服务的地址:12321/executor?action=activate" && echo将exec的状态改为活跃,双重激活。
./azkaban/web/bin/start.sh
启动的时候注意要在同级目录下启动,不然有时候会报错
成功,完结撒花!
错误记录:
-
搭建过程中build不成功,原因是linkedin的服务器地址改了
sed -i.bak \ "s/linkedin.bintray.com\/maven/linkedin.jfrog.io\/artifactory\/open-source\//" \ azkaban-4.0.0/build.gradle \ && rm -f azkaban-4.0.0/build.gradle.bak
-
运行任务时报:[Azkaban] Unable to get scheduled flow triggers
网站上有很多种说法,我的解决方法是:
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus//过滤掉executor的限制,不然会报错 也清理了内存,看了github对有的人有效有的人无效
-
missing required property “azkaban.native.lib”
这个问题需要配置azkaban.properties文件,看了前面的过程就懂了
注明:本篇博客也是我在看了很多别人的博客和github上的lssue总结出来的,搭建实在公司电脑搭建的配置文件不方便显示,有的配置片段是应用的别的博主的
引用配置片段的原文链接:https://blog.csdn.net/qq_38075749/article/details/121539432?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-121539432-blog-121144836.pc_relevant_multi_platform_whitelistv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-121539432-blog-121144836.pc_relevant_multi_platform_whitelistv1&utm_relevant_index=5
如果侵权,请联系我删除
build以后的包在这里:
链接:https://pan.baidu.com/s/1Ah1Y7AbnLWc-yoI5AuuqYQ
提取码:po4v
–来自百度网盘超级会员V4的分享
更多推荐
所有评论(0)