优化阅读格式

This commit is contained in:
heibaiying
2019-07-31 17:18:07 +08:00
parent ceb868fe13
commit ca7c99802b
91 changed files with 4059 additions and 4058 deletions

View File

@ -14,24 +14,24 @@
## 一、简介
Azkaban主要通过界面上传配置文件来进行任务的调度。它有两个重要的概念
Azkaban 主要通过界面上传配置文件来进行任务的调度。它有两个重要的概念:
- **Job** 你需要执行的调度任务;
- **Flow**一个获取多个Job及它们之间的依赖关系所组成的图表叫做Flow。
- **Flow**:一个获取多个 Job 及它们之间的依赖关系所组成的图表叫做 Flow。
目前 Azkaban 3.x 同时支持 Flow 1.0 和 Flow 2.0,本文主要讲解 Flow 1.0的使用下一篇文章会讲解Flow 2.0的使用。
目前 Azkaban 3.x 同时支持 Flow 1.0 和 Flow 2.0,本文主要讲解 Flow 1.0 的使用,下一篇文章会讲解 Flow 2.0 的使用。
## 二、基本任务调度
### 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`,内容如下。这里的任务很简单,就是输出一句`'Hello Azkaban!'`
新建任务配置文件 `Hello-Azkaban.job`,内容如下。这里的任务很简单,就是输出一句 `'Hello Azkaban!'`
```shell
#command.job
@ -41,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>
@ -71,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** :
@ -112,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>
@ -126,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
@ -143,7 +143,7 @@ command=/usr/app/hadoop-2.6.0-cdh5.15.2/bin/hadoop fs -ls /
## 五、调度MR作业
MR作业配置
MR 作业配置:
```shell
type=command
@ -163,7 +163,7 @@ type=command
command=/usr/app/hive-1.1.0-cdh5.15.2/bin/hive -f 'test.sql'
```
其中`test.sql`内容如下,创建一张雇员表,然后查看其结构:
其中 `test.sql` 内容如下,创建一张雇员表,然后查看其结构:
```sql
CREATE DATABASE IF NOT EXISTS hive;
@ -179,11 +179,11 @@ sal double,
comm double,
deptno int
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
-- 查看emp表的信息
-- 查看 emp 表的信息
desc emp;
```
打包的时候将`job`文件与`sql`文件一并进行打包:
打包的时候将 `job` 文件与 `sql` 文件一并进行打包:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hive.png"/> </div>
@ -193,11 +193,11 @@ 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>
@ -207,7 +207,7 @@ desc emp;
## 附:可能出现的问题
如果出现以下异常多半是因为执行主机内存不足Azkaban要求执行主机的可用内存必须大于3G才能执行任务
如果出现以下异常多半是因为执行主机内存不足Azkaban 要求执行主机的可用内存必须大于 3G 才能执行任务:
```shell
Cannot request memory (Xms 0 kb, Xmx 0 kb) from system for job
@ -215,7 +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>
如果你的执行主机没办法增大内存,那么可以通过修改`plugins/jobtypes/`目录下的`commonprivate.properties` 文件来关闭内存检查,配置如下:
如果你的执行主机没办法增大内存,那么可以通过修改 `plugins/jobtypes/` 目录下的 `commonprivate.properties` 文件来关闭内存检查,配置如下:
```shell
memCheck.enabled=false