Azkaban3.81.0下载、编译

下载

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 项目生效

  1. 打开 /program/azkaban-3.81.0/build.gradle 文件
  2. 找到 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://ebook.qicoder.com/bigdata-notes/notes/installation/Azkaban_3.x_%E7%BC%96%E8%AF%91%E5%8F%8A%E9%83%A8%E7%BD%B2.html

https://blog.csdn.net/qq_40743057/article/details/139139574

https://bbs.huaweicloud.com/blogs/437631


原文出处:/show_1GW2KS4hPMwq.html