下载
Azkaban 在 3.0 版本之后就不提供对应的安装包,需要自己下载源码进行编译
本文下载的是 3.81.0版本的 tar.gz 文件格式
下载网址:
https://github.com/azkaban/azkaban/releases
上传
上传到 /program/ 目录
解压缩
tar -zxvf azkaban-3.81.0.tar.gz
安装 Gradle
编译需要 Gradle (相当于 maven)
确认需要 Gradle 版本
不同版本的 azkaban,编译时,需要 Gradle 版本也不同
打开下面文件:
/program/azkaban-3.81.0/gradle/wrapper/gradle-wrapper.properties
如下图:
在编译时程序会自动去图中所示的地址进行下载,但是下载速度很慢。为避免影响编译过程,建议先手动下载到 /gradle/wrapper/ 目录下
下载方式1
切换到下面目录:
/program/azkaban-3.81.0/gradle/wrapper/
执行下面命令:
wget https://services.gradle.org/distributions/gradle-4.6-all.zip
下载方式2:
手动下载 Gradle,
https://services.gradle.org/distributions/gradle-4.6-all.zip
上传到 /program/azkaban-3.81.0/gradle/wrapper/ 目录
配置国内 Maven 镜像
国内网络无法访问 Maven 中央仓库(repo.maven.apache.org),导致编译所需的测试依赖(awaitility、assertj-core、mockito-core 等)下载失败,所以需要配置国内 Maven 镜像
提示:仅对当前 Azkaban 项目生效
- 打开
/program/azkaban-3.81.0/build.gradle文件 - 找到
allprojects { repositories { ... } }块,添加下面内容(添加阿里云镜像,优先从国内拉取):// 优先使用阿里云 Maven 镜像(国内速度最快,覆盖绝大多数依赖) maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } maven { url 'https://maven.aliyun.com/repository/jcenter' }
修改配置文件
然后修改配置文件 gradle-wrapper.properties 中的 distributionUrl 属性,指明使用本地的 gradle,如下:
distributionUrl=gradle-4.6-all.zip
安装 Git
Azkaban 的编译过程需要用 Git 下载部分 JAR 包,所以需要预先安装 Git:
yum install git -y
安装 nodejs
Azkaban编译时,依赖 nodejs
查看依赖 nodejs 的版本
打开下面文件:
/program/azkaban-3.81.0/azkaban-web-server/build.gradle
显示内容如下:
需要 8.10.0 版本,但这个版本已经没有
查看 nodejs 可用的版本
打开下面网址:
https://nodejs.org/dist/latest-v8.x/
可以看到最接近的版本是:
node-v8.17.0-linux-x64.tar.gz
下载这个文件
注意:不要下载 node-v8.17.0-linux-arm64.tar 文件,无法在linux上运行
上传
上传到 /program/ 目录
解压缩
tar -zxvf node-v8.17.0-linux-x64.tar.gz
改名
mv node-v8.17.0-linux-x64 node-v8.17
创建软连接
使得在任意目录下都可以试用直接使用node命令和npm命令
ln -s /program/node-v8.17.0/bin/node /usr/local/bin/node
ln -s /program/node-v8.17.0/bin/npm /usr/local/bin/npm
查看nodejs是否可用
执行下面命令:
node -v
执行结果如下:
v8.17.0
说明可用
查看npm是否可用
执行下面命令:
npm -v
执行结果如下:
6.13.4
禁止下载,使用系统中的node、npm
打开下面文件:
/program/azkaban-3.81.0/azkaban-web-server/build.gradle
如下图:
将
download = true
改为:
download = false
编译
切换到根目录
cd azkaban-3.81.0
编译命令1:跳过测试(推荐)
跳过测试(推荐生产部署)
./gradlew build installDist -x test
编译成功后会有 BUILD SUCCESSFUL 的提示:
注意:
因为编译的过程需要下载大量的 Jar 包,下载速度根据网络情况而定,通常都不会很快,如果网络不好,耗费半个小时,一个小时都是很正常的;
编译过程中如果出现网络问题而导致 JAR 无法下载,编译可能会被强行终止,这时候重复执行编译命令即可,gradle 会把已经下载的 JAR 缓存到本地,所以不用担心会重复下载 JAR 包。
编译命令2:需编译测试模块
./gradlew build installDist
编译成功后的安装文件
在根目录下,在 azkaban-*/build/distributions 目录中,有基于Windows和Linux的安装包文件
azkaban-web-server
可视化 Web 控制台:负责用户交互、任务流管理、调度触发、权限控制,是用户操作和系统调度的核心入口
/program/azkaban-3.81.0/azkaban-web-server/build/distributions/
azkaban-exec-server
接收 web-server 下发的任务执行指令,运行具体任务(如 Shell 脚本、Spark 任务、Hive SQL 等)
/program/azkaban-3.81.0/azkaban-exec-server/build/distributions/
azkaban-db
负责存储所有元数据和运行时数据,是 web-server 和 exec-server 协同工作的桥梁。仅支持 MySQL(Azkaban 3.x 推荐 5.6/5.7,不支持 MySQL 8.0)
/program/azkaban-3.81.0/azkaban-db/build/distributions/
azkaban-solo-server
azkaban-solo-server(单机模式)是 Azkaban 提供的一体化单机部署方案,核心是将 azkaban-web-server(Web 服务)、azkaban-exec-server(执行服务)、嵌入式数据库(H2) 集成在一个进程中,无需额外部署独立数据库和多服务节点,是 Azkaban 最简化的部署形态。
/program/azkaban-3.81.0/azkaban-solo-server/build/distributions/
https://blog.csdn.net/qq_40743057/article/details/139139574
https://bbs.huaweicloud.com/blogs/437631




