格式调整

This commit is contained in:
罗祥 2019-04-07 12:28:26 +08:00
parent 2d31205175
commit 109844ffce
6 changed files with 247 additions and 237 deletions

1
.gitignore vendored
View File

@ -2,7 +2,6 @@
*.iml
*.ipr
*.iws
*.jar
*.sw?
*~
.#*

View File

@ -52,17 +52,17 @@
1. [分布式文件存储系统——HDFS](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hadoop-HDFS.md)
2. [分布式计算框架——MapReduce](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hadoop-MapReduce.md)
3. [集群资源管理器——YARN](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hadoop-YARN.md)
4. Hadoop单机伪集群环境搭建
4. [Hadoop单机伪集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/hadoop%E5%8D%95%E6%9C%BA%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md)
## 二、Hive
1. [数据仓库Hive](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive.md)
2. Linux环境下Hive的安装部署
2. [Linux环境下Hive的安装部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux%E7%8E%AF%E5%A2%83%E4%B8%8BHive%E7%9A%84%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2.md)
## 三、Spark
1. Spark简介
2. Spark单机版本环境搭建
2. [Spark单机版本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Spark%E5%8D%95%E6%9C%BA%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md)
3. RDD详解
4. Spark Transformation 和 Action
@ -74,13 +74,13 @@ TODO
1. Strom简介
2. [Storm核心概念详解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Storm核心概念详解.md)
3. Storm单机版本环境搭建
3. [Storm单机版本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Storm%E5%8D%95%E6%9C%BA%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md)
4. Storm编程模型
## 六、Flume
1. Flume简介
2. Linux环境下Flume的安装部署
2. [Linux环境下Flume的安装部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux%E4%B8%8BFlume%E7%9A%84%E5%AE%89%E8%A3%85.md)
3. Flume的使用
4. Flume整合Kafka
@ -93,9 +93,9 @@ TODO
## 八、Azkaban
1. Azkaban项目简介
2. Azkaban3.x编译及部署
3. Azkaban Flow 1.0 的使用
4. Azkaban Flow 2.0 的使用
2. [Azkaban3.x编译及部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Azkaban%203.x%20%E7%BC%96%E8%AF%91%E5%8F%8A%E9%83%A8%E7%BD%B2.md)
3. [Azkaban Flow 1.0 的使用](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Azkaban%20Flow%201.0%20%E7%9A%84%E4%BD%BF%E7%94%A8.md)
4. [Azkaban Flow 2.0 的使用](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Azkaban%20Flow%202.0%20%E7%9A%84%E4%BD%BF%E7%94%A8.md)
## 九、HBase
@ -104,7 +104,7 @@ TODO
3. [HBase常用Shell命令](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase%20Shell.md)
4. HBase Java API
5. HBase 协处理器
6. HBase 备份与恢复
6. [HBase 容灾与备份](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase%E5%AE%B9%E7%81%BE%E4%B8%8E%E5%A4%87%E4%BB%BD.md)
7. [HBase的SQL中间层——Phoenix](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase%E7%9A%84SQL%E5%B1%82%E2%80%94%E2%80%94Phoenix.md)
8. [Spring/Spring Boot 整合 Mybatis + Phoenix](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spring%2BMybtais%2BPhoenix%E6%95%B4%E5%90%88.md)
## 十、Kafka

View File

@ -1,5 +1,6 @@
# Azkaban Flow 1.0 的使用
<nav>
# Azkaban Flow 1.0 的使用
<nav>
<a href="#一简介">一、简介</a><br/>
<a href="#二基本任务调度">二、基本任务调度</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#21-新建项目">2.1 新建项目</a><br/>
@ -16,219 +17,221 @@
<a href="#五调度MR作业">五、调度MR作业</a><br/>
<a href="#六调度Hive作业">六、调度Hive作业</a><br/>
<a href="#七在线修改作业配置">七、在线修改作业配置</a><br/>
<a href="#<div-align="center">-<img--src="httpsgithubcomheibaiyingBigData-Notesblobmasterpicturesazkaban-click-editpng">-<div>八可能出现的问题"><div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-click-edit.png"/> </div>八、可能出现的问题</a><br/>
</nav>
## 一、简介
Azkaban提供了人性化的WEB UI界面使得我们可以通过界面上传配置文件来完成任务的调度。Azkaban有两个重要的概念
- **Job** 你需要执行的调度任务;
- **Flow**一个获取多个Job及它们之间的依赖关系所组成的图表叫做Flow。
目前 Azkaban 3.x 同时支持 Flow 1.0 和 Flow 2.0,本文主要讲解 Flow 1.0的使用下一篇文章会讲解Flow 2.0的使用。
## 二、基本任务调度
### 2.1 新建项目
在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!'`
```shell
#command.job
type=command
command=echo 'Hello Azkaban!'
```
### 2.3 打包上传
`Hello-Azkaban.job `打包为`zip`压缩文件
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-zip.png"/> </div>
通过Web UI 界面上传
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-upload.png"/> </div>
上传成功后可以看到对应的Flows
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-flows.png"/> </div>
### 2.4 执行任务
点击页面上的`Execute Flow`执行任务
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-execute.png"/> </div>
### 2.5 执行结果
点击`detail`可以查看到任务的执行日志
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-successed.png"/> </div>
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-log.png"/> </div>
## 三、多任务调度
### 3.1 依赖配置
这里假设我们有五个任务TaskA——TaskE,D任务需要在ABC任务执行完成后才能执行而E任务则需要在D任务执行完成后才能执行。则需要使用`dependencies`属性定义其依赖关系,各任务配置如下:
**Task-A.job** :
```shell
type=command
command=echo 'Task A'
```
**Task-B.job** :
```shell
type=command
command=echo 'Task B'
```
**Task-C.job** :
```shell
type=command
command=echo 'Task C'
```
**Task-D.job** :
```shell
type=command
command=echo 'Task D'
dependencies=Task-A,Task-B,Task-C
```
**Task-E.job** :
```shell
type=command
command=echo 'Task E'
dependencies=Task-D
```
### 3.2 压缩上传
压缩后进行上传这里需要注意的是一个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的名称其依赖关系可以在页面上得以直观的体现
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-dependencies.png"/> </div>
### 3.4 执行结果
<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 就很好的解决了这个问题。
## 四、调度HDFS作业
步骤与上面的步骤一致这里已查看HDFS文件列表为例建议涉及到路径的地方全部采用完整的路径名配置文件如下
```shell
type=command
command=/usr/app/hadoop-2.6.0-cdh5.15.2/bin/hadoop fs -ls /
```
执行结果:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hdfs.png"/> </div>
## 五、调度MR作业
MR作业配置
```shell
type=command
command=/usr/app/hadoop-2.6.0-cdh5.15.2/bin/hadoop jar /usr/app/hadoop-2.6.0-cdh5.15.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 3 3
```
执行结果:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-mr.png"/> </div>
## 六、调度Hive作业
作业配置:
```shell
type=command
command=/usr/app/hive-1.1.0-cdh5.15.2/bin/hive -f 'test.sql'
```
其中`test.sql`内容如下,创建一张雇员表,然后查看其结构:
```sql
CREATE DATABASE IF NOT EXISTS hive;
use hive;
drop table if exists emp;
CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
-- 查看emp表的信息
desc emp;
```
打包的时候将`job`文件与`sql`文件一并进行打包
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hive.png"/> </div>
执行结果如下:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hive-result.png"/> </div>
## 七、在线修改作业配置
在测试的时候我们可能要频繁修改配置如果每次修改都要重新打包上传这是比较麻烦的所幸的是Azkaban是支持配置的在线修改的点击需要修改的Flow就可以进入详情页面
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-project-edit.png"/> </div>
在详情页面点击`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才能满足执行任务的条件
```shell
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`下。
关闭内存检查的配置如下:
```shell
memCheck.enabled=false
```
## 一、简介
Azkaban提供了人性化的WEB UI界面使得我们可以通过界面上传配置文件来完成任务的调度。Azkaban有两个重要的概念
- **Job** 你需要执行的调度任务;
- **Flow**一个获取多个Job及它们之间的依赖关系所组成的图表叫做Flow。
目前 Azkaban 3.x 同时支持 Flow 1.0 和 Flow 2.0,本文主要讲解 Flow 1.0的使用下一篇文章会讲解Flow 2.0的使用。
## 二、基本任务调度
### 2.1 新建项目
在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!'`
```shell
#command.job
type=command
command=echo 'Hello Azkaban!'
```
### 2.3 打包上传
`Hello-Azkaban.job `打包为`zip`压缩文件
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-zip.png"/> </div>
通过Web UI 界面上传
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-upload.png"/> </div>
上传成功后可以看到对应的Flows
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-flows.png"/> </div>
### 2.4 执行任务
点击页面上的`Execute Flow`执行任务
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-execute.png"/> </div>
### 2.5 执行结果
点击`detail`可以查看到任务的执行日志
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-successed.png"/> </div>
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-log.png"/> </div>
## 三、多任务调度
### 3.1 依赖配置
这里假设我们有五个任务TaskA——TaskE,D任务需要在ABC任务执行完成后才能执行而E任务则需要在D任务执行完成后才能执行。则需要使用`dependencies`属性定义其依赖关系,各任务配置如下:
**Task-A.job** :
```shell
type=command
command=echo 'Task A'
```
**Task-B.job** :
```shell
type=command
command=echo 'Task B'
```
**Task-C.job** :
```shell
type=command
command=echo 'Task C'
```
**Task-D.job** :
```shell
type=command
command=echo 'Task D'
dependencies=Task-A,Task-B,Task-C
```
**Task-E.job** :
```shell
type=command
command=echo 'Task E'
dependencies=Task-D
```
### 3.2 压缩上传
压缩后进行上传这里需要注意的是一个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的名称其依赖关系可以在页面上得以直观的体现
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-dependencies.png"/> </div>
### 3.4 执行结果
<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 就很好的解决了这个问题。
## 四、调度HDFS作业
步骤与上面的步骤一致这里已查看HDFS文件列表为例建议涉及到路径的地方全部采用完整的路径名配置文件如下
```shell
type=command
command=/usr/app/hadoop-2.6.0-cdh5.15.2/bin/hadoop fs -ls /
```
执行结果:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hdfs.png"/> </div>
## 五、调度MR作业
MR作业配置
```shell
type=command
command=/usr/app/hadoop-2.6.0-cdh5.15.2/bin/hadoop jar /usr/app/hadoop-2.6.0-cdh5.15.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 3 3
```
执行结果:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-mr.png"/> </div>
## 六、调度Hive作业
作业配置:
```shell
type=command
command=/usr/app/hive-1.1.0-cdh5.15.2/bin/hive -f 'test.sql'
```
其中`test.sql`内容如下,创建一张雇员表,然后查看其结构:
```sql
CREATE DATABASE IF NOT EXISTS hive;
use hive;
drop table if exists emp;
CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
-- 查看emp表的信息
desc emp;
```
打包的时候将`job`文件与`sql`文件一并进行打包
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hive.png"/> </div>
执行结果如下:
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-hive-result.png"/> </div>
## 七、在线修改作业配置
在测试的时候我们可能要频繁修改配置如果每次修改都要重新打包上传这是比较麻烦的所幸的是Azkaban是支持配置的在线修改的点击需要修改的Flow就可以进入详情页面
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/azkaban-project-edit.png"/> </div>
在详情页面点击`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才能满足执行任务的条件
```shell
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`下。
关闭内存检查的配置如下:
```shell
memCheck.enabled=false
```

View File

@ -31,7 +31,21 @@
### 五、Linux
### 六、Flume
1. [Linux环境下Flume的安装部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux%E4%B8%8BFlume%E7%9A%84%E5%AE%89%E8%A3%85.md)
### 七、Azkaban
1. [Azkaban3.x编译及部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Azkaban%203.x%20%E7%BC%96%E8%AF%91%E5%8F%8A%E9%83%A8%E7%BD%B2.md)
### 八、Hive
1. [Linux环境下Hive的安装部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux%E7%8E%AF%E5%A2%83%E4%B8%8BHive%E7%9A%84%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2.md)
+ [虚拟机静态IP配置](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/虚拟机静态IP配置.md)

View File

@ -4,14 +4,8 @@
>
> 系统环境Centos 7.6
<nav>
&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/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#14-拷贝数据库驱动">1.4 拷贝数据库驱动</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#15-初始化元数据库">1.5 初始化元数据库</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#16-启动">1.6 启动</a><br/>
</nav>
### 1.1 下载并解压
下载所需版本的Hive这里我下载的是`cdh5.15.2`版本的Hive。下载地址为http://archive.cloudera.com/cdh5/cdh/5/
@ -92,7 +86,7 @@ HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2
### 1.4 拷贝数据库驱动
将MySQL驱动拷贝到Hive安装目录的`lib`目录下, MySQL驱动的下载地址为https://dev.mysql.com/downloads/connector/j/ , 在本仓库的resources目录下我也上传了一份有需要的可以自行下载。
将MySQL驱动拷贝到Hive安装目录的`lib`目录下, MySQL驱动的下载地址为https://dev.mysql.com/downloads/connector/j/ , 在本仓库的[resources](https://github.com/heibaiying/BigData-Notes/tree/master/resources)目录下我也上传了一份,有需要的可以自行下载。
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hive-mysql.png"/> </div>

Binary file not shown.