Azkaban_Flow_1.0_的使用

This commit is contained in:
罗祥
2019-06-03 14:43:36 +08:00
parent 5beea9a070
commit 948a7c2d76
2 changed files with 26 additions and 44 deletions

View File

@ -3,16 +3,7 @@
<nav>
<a href="#一简介">一、简介</a><br/>
<a href="#二基本任务调度">二、基本任务调度</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/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#25-执行结果">2.5 执行结果</a><br/>
<a href="#三多任务调度">三、多任务调度</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#31-依赖配置">3.1 依赖配置</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#32-压缩上传">3.2 压缩上传</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#33-依赖关系">3.3 依赖关系</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#34-执行结果">3.4 执行结果</a><br/>
<a href="#四调度HDFS作业">四、调度HDFS作业</a><br/>
<a href="#五调度MR作业">五、调度MR作业</a><br/>
<a href="#六调度Hive作业">六、调度Hive作业</a><br/>
@ -20,9 +11,10 @@
</nav>
## 一、简介
Azkaban提供了人性化的WEB UI界面使得我们可以通过界面上传配置文件来完成任务的调度。Azkaban有两个重要的概念:
Azkaban主要通过界面上传配置文件来进行任务的调度。有两个重要的概念:
- **Job** 你需要执行的调度任务;
- **Flow**一个获取多个Job及它们之间的依赖关系所组成的图表叫做Flow。
@ -33,13 +25,13 @@ Azkaban提供了人性化的WEB UI界面使得我们可以通过界面上传
### 2.1 新建项目
在Azkaban主界面可以创建对应的项目
在Azkaban主界面可以创建对应的项目
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-create-project.png"/> </div>
### 2.2 任务配置
新建任务配置文件`Hello-Azkaban.job`注意后缀名为`job`,内容如下,这里我们的任务很简单,就是输出一句`'Hello Azkaban!'`
新建任务配置文件`Hello-Azkaban.job`,内容如下这里的任务很简单,就是输出一句`'Hello Azkaban!'`
```shell
#command.job
@ -49,27 +41,27 @@ command=echo 'Hello Azkaban!'
### 2.3 打包上传
`Hello-Azkaban.job `打包为`zip`压缩文件
`Hello-Azkaban.job `打包为`zip`压缩文件
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-zip.png"/> </div>
通过Web UI 界面上传
通过Web UI 界面上传
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-upload.png"/> </div>
上传成功后可以看到对应的Flows
上传成功后可以看到对应的Flows
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-flows.png"/> </div>
### 2.4 执行任务
点击页面上的`Execute Flow`执行任务
点击页面上的`Execute Flow`执行任务
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-execute.png"/> </div>
### 2.5 执行结果
点击`detail`可以查看到任务的执行日志
点击`detail`可以查看到任务的执行日志
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-successed.png"/> </div>
@ -79,7 +71,7 @@ command=echo 'Hello Azkaban!'
### 3.1 依赖配置
这里假设我们有五个任务TaskA——TaskE,D任务需要在ABC任务执行完成后才能执行E任务则需要在D任务执行完成后才能执行。则需要使用`dependencies`属性定义其依赖关系各任务配置如下:
这里假设我们有五个任务TaskA——TaskE,D 任务需要在ABC任务执行完成后才能执行 E 任务则需要在 D 任务执行完成后才能执行,这种情况下需要使用`dependencies`属性定义其依赖关系各任务配置如下:
**Task-A.job** :
@ -120,13 +112,13 @@ dependencies=Task-D
### 3.2 压缩上传
压缩后进行上传这里需要注意的是一个Project只能接收一个压缩包这里我还沿用上面的Project默认后面的压缩包会覆盖前面的压缩包
压缩后进行上传这里需要注意的是一个Project只能接收一个压缩包这里我还沿用上面的Project默认后面的压缩包会覆盖前面的压缩包
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-task-abcde-zip.png"/> </div>
### 3.3 依赖关系
多个任务存在依赖时默认采用最后一个任务的文件名作为Flow的名称其依赖关系可以在页面上得以直观的体现
多个任务存在依赖时默认采用最后一个任务的文件名作为Flow的名称其依赖关系如图:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-dependencies.png"/> </div>
@ -134,11 +126,11 @@ dependencies=Task-D
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-task-abcde.png"/> </div>
这里说明一下在Flow1.0的情况下,是无法通过一个job文件完成多个任务的配置但是Flow 2.0 就很好的解决了这个问题。
从这个案例可以看出,Flow1.0无法通过一个job文件完成多个任务的配置但是Flow 2.0 就很好的解决了这个问题。
## 四、调度HDFS作业
步骤与上面的步骤一致,这里查看HDFS文件列表为例,建议涉及到路径的地方全部采用完整路径,配置文件如下:
步骤与上面的步骤一致,这里查看HDFS上的文件列表为例。命令建议采用完整路径,配置文件如下:
```shell
type=command
@ -191,7 +183,7 @@ deptno int
desc emp;
```
打包的时候将`job`文件与`sql`文件一并进行打包
打包的时候将`job`文件与`sql`文件一并进行打包
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hive.png"/> </div>
@ -201,21 +193,21 @@ desc emp;
## 七、在线修改作业配置
在测试的时候,我们可能要频繁修改配置,如果每次修改都要重新打包上传这是比较麻烦的,所幸的是Azkaban支持配置的在线修改点击需要修改的Flow就可以进入详情页面
在测试,我们可能要频繁修改配置,如果每次修改都要重新打包上传,这会比较麻烦。所以Azkaban支持配置的在线修改点击需要修改的Flow就可以进入详情页面
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-project-edit.png"/> </div>
在详情页面点击`Eidt`按钮可以进入编辑页面
在详情页面点击`Eidt`按钮可以进入编辑页面
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-edit.png"/> </div>
在编辑页面可以新增配置或者修改配置
在编辑页面可以新增配置或者修改配置
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-click-edit.png"/> </div>
## 附:可能出现的问题
如果出现以下异常,多半是因为执行主机内存不足引起azkaban要求执行主机可用内存必须大于3G才能满足执行任务的条件
如果出现以下异常多半是因为执行主机内存不足Azkaban要求执行主机可用内存必须大于3G才能执行任务
```shell
Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job
@ -223,11 +215,7 @@ Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-memory.png"/> </div>
如果你的执行主机没办法增大内存,可以通过配置`commonprivate.properties` 文件关闭内存检查,
`commonprivate.properties` 文件在安装目录的`/plugins/jobtypes`下。
关闭内存检查的配置如下:
如果你的执行主机没办法增大内存,那么可以通过修改`plugins/jobtypes/`目录下的`commonprivate.properties` 文件关闭内存检查,配置如下:
```shell
memCheck.enabled=false

View File

@ -1,20 +1,14 @@
# 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/>
<a href="#一Azkaban-源码编译">一、Azkaban 源码编译</a><br/>
<a href="#二Azkaban-部署模式">二、Azkaban 部署模式</a><br/>
<a href="#-Solo-Server-模式部署">三、Solo Server 模式部署</a><br/>
</nav>
## 一、Azkaban 编译
## 一、Azkaban 源码编译
### 1.1 下载并解压
@ -78,7 +72,7 @@ Azkaban 的编译过程需要用Git下载部分JAR包所以需要预先安装
## 二、Azkaban 部署模式介绍
## 二、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.