BigData-Notes/notes/installation/Azkaban_3.x_编译及部署.md
2019-06-03 14:17:24 +08:00

133 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Azkaban 3.x 编译及部署
<nav>
<a href="#一Azkaban-编译">一、Azkaban 编译</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#11-下载并解压">1.1 下载并解压</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#12-准备编译环境">1.2 准备编译环境</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#13-项目编译">1.3 项目编译</a><br/>
<a href="#二Azkaban-部署模式介绍">二、Azkaban 部署模式介绍</a><br/>
<a href="#三-Solo-Server-模式部署">三 、Solo Server 模式部署</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#21--解压">2.1 解压</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#22-修改时区">2.2 修改时区</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#23-启动">2.3 启动</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#24-验证">2.4 验证</a><br/>
</nav>
## 一、Azkaban 编译
### 1.1 下载并解压
Azkaban 在3.0版本之后就不提供对应的安装包,需要自己下载源码进行编译。
下载所需版本的源码Azkaban的源码托管在GitHub上地址为https://github.com/azkaban/azkaban 。可以使用`git clone`的方式获取源码,也可以使用`wget`直接下载对应release版本的`tar.gz`文件,这里我采用第二种方式:
```shell
# 下载
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安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux下JDK安装.md)
#### 2. Gradle
Azkaban 3.70.0编译需要依赖`gradle-4.6-all.zip`。Gradle是一个项目自动化构建开源工具类似于Maven但由于采用Groovy语言进行项目配置所以比Maven更为灵活目前广泛用于Android开发、Spring项目的构建。
需要注意的是不同版本的Azkaban依赖Gradle版本不同可以在解压后的`/gradle/wrapper/gradle-wrapper.properties`文件查看
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-gradle-wrapper.png"/> </div>
在编译时程序会自动去图中指定的地址下载,但是下载速度很慢。为避免影响编译过程,建议先手动下载至`/gradle/wrapper/`目录下:
```shell
# wget https://services.gradle.org/distributions/gradle-4.6-all.zip
```
然后修改配置文件`gradle-wrapper.properties`中的`distributionUrl`属性指明使用本地的gradle。
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-gradle-wrapper-2.png"/> </div>
#### 3. Git
Azkaban 的编译过程需要用Git下载部分JAR包所以需要预先安装Git
```shell
# yum install git
```
### 1.3 项目编译
在根目录下执行编译命令,编译成功后会有`BUILD SUCCESSFUL`的提示:
```shell
# ./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应采用主从模式进行备份和容错。这种模式下`webServer``executorServer`在不同进程中运行,彼此之间互不影响,适合用于生产环境。
下面主要介绍`Solo Server`模式。
## 三 、Solo Server 模式部署
### 2.1 解压
Solo Server 模式安装包在编译后的`/azkaban-solo-server/build/distributions`目录下,找到后进行解压即可:
```shell
# 解压
tar -zxvf azkaban-solo-server-3.70.0.tar.gz
```
### 2.2 修改时区
这一步不是必须的。但是因为Azkaban默认采用的时区是`America/Los_Angeles`,如果你的调度任务中有定时任务的话,就需要进行相应的更改,这里我更改为常用的`Asia/Shanghai`
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-setting.png"/> </div>
### 2.3 启动
执行启动命令,需要注意的是一定要在根目录下执行,不能进入`bin`目录下执行,不然会抛出`Cannot find 'database.properties'`异常。
```shell
# bin/start-solo.sh
```
### 2.4 验证
验证方式一:使用`jps`命令查看是否有`AzkabanSingleServer`进程:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/akaban-jps.png"/> </div>
<br/>
验证方式二访问8081端口查看Web UI界面默认的登录名密码都是`azkaban`,如果需要修改或新增,则可以在`conf/azkaban-users.xml `文件中进行配置:
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-web-ui.png"/> </div>