BigData-Notes/notes/installation/Azkaban_3.x_编译及部署.md

5.1 KiB
Raw Blame History

Azkaban 3.x 编译及部署

一、Azkaban 源码编译
二、Azkaban 部署模式
三、Solo Server 模式部署

一、Azkaban 源码编译

1.1 下载并解压

Azkaban 在3.0版本之后就不提供对应的安装包,需要自己下载源码进行编译。

下载所需版本的源码Azkaban的源码托管在GitHub上地址为https://github.com/azkaban/azkaban 。可以使用git clone的方式获取源码,也可以使用wget直接下载对应release版本的tar.gz文件,这里我采用第二种方式:

# 下载
wget https://github.com/azkaban/azkaban/archive/3.70.0.tar.gz
# 解压
tar -zxvf azkaban-3.70.0.tar.gz

1.2 准备编译环境

1. JDK

Azkaban 编译依赖JDK 1.8+ JDK安装方式见本仓库

Linux环境下JDK安装

2. Gradle

Azkaban 3.70.0编译需要依赖gradle-4.6-all.zip。Gradle是一个项目自动化构建开源工具类似于Maven但由于采用Groovy语言进行项目配置所以比Maven更为灵活目前广泛用于Android开发、Spring项目的构建。

需要注意的是不同版本的Azkaban依赖Gradle版本不同可以在解压后的/gradle/wrapper/gradle-wrapper.properties文件查看

在编译时程序会自动去图中所示的地址进行下载,但是下载速度很慢。为避免影响编译过程,建议先手动下载至/gradle/wrapper/目录下:

# wget https://services.gradle.org/distributions/gradle-4.6-all.zip

然后修改配置文件gradle-wrapper.properties中的distributionUrl属性指明使用本地的gradle。

3. Git

Azkaban 的编译过程需要用Git下载部分JAR包所以需要预先安装Git

# yum install git

1.3 项目编译

在根目录下执行编译命令,编译成功后会有BUILD SUCCESSFUL的提示:

# ./gradlew build installDist -x test

编译过程中需要注意以下问题:

  • 因为编译的过程需要下载大量的Jar包下载速度根据网络情况而定通常都不会很快如果网络不好耗费半个小时一个小时都是很正常的
  • 编译过程中如果出现网络问题而导致JAR无法下载编译可能会被强行终止这时候重复执行编译命令即可gradle会把已经下载的JAR缓存到本地所以不用担心会重复下载JAR包。

二、Azkaban 部署模式

After version 3.0, we provide two modes: the stand alone “solo-server” mode and distributed multiple-executor mode. The following describes thedifferences between the two modes.

按照官方文档的说明Azkaban 3.x 之后版本提供2种运行模式

  • solo server model(单服务模式) 元数据默认存放在内置的H2数据库可以修改为MySQL该模式中webServer(管理服务器)和 executorServer(执行服务器)运行在同一个进程中,进程名是AzkabanSingleServer。该模式适用于小规模工作流的调度。
  • multiple-executor(分布式多服务模式) 存放元数据的数据库为MySQLMySQL应采用主从模式进行备份和容错。这种模式下webServerexecutorServer在不同进程中运行,彼此之间互不影响,适合用于生产环境。

下面主要介绍Solo Server模式。

三 、Solo Server 模式部署

2.1 解压

Solo Server 模式安装包在编译后的/azkaban-solo-server/build/distributions目录下,找到后进行解压即可:

# 解压
tar -zxvf  azkaban-solo-server-3.70.0.tar.gz

2.2 修改时区

这一步不是必须的。但是因为Azkaban默认采用的时区是America/Los_Angeles,如果你的调度任务中有定时任务的话,就需要进行相应的更改,这里我更改为常用的Asia/Shanghai

2.3 启动

执行启动命令,需要注意的是一定要在根目录下执行,不能进入bin目录下执行,不然会抛出Cannot find 'database.properties'异常。

# bin/start-solo.sh

2.4 验证

验证方式一:使用jps命令查看是否有AzkabanSingleServer进程:


验证方式二访问8081端口查看Web UI界面默认的登录名密码都是azkaban,如果需要修改或新增用户,可以在conf/azkaban-users.xml 文件中进行配置: