From afd99b784f2894acd7fe9b278207dc53200c0b3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Mon, 3 Jun 2019 13:58:23 +0800
Subject: [PATCH] =?UTF-8?q?azkaban=E7=AE=80=E4=BB=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/Azkaban简介.md | 37 +++++++++----------
.../Azkaban_3.x_编译及部署.md | 5 +--
2 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/notes/Azkaban简介.md b/notes/Azkaban简介.md
index 8ef52a2..0d28e43 100644
--- a/notes/Azkaban简介.md
+++ b/notes/Azkaban简介.md
@@ -5,18 +5,18 @@
#### 1.1 背景
-一个完整的大数据分析系统,必然有很多任务单元组成(如数据收集、数据清洗、数据存储、数据分析等),所有的任务单元及其之间的依赖关系组成了多个工作流。复杂的工作流管理涉及到很多问题:
+一个完整的大数据分析系统,必然由很多任务单元(如数据收集、数据清洗、数据存储、数据分析等)组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流。复杂的工作流管理涉及到很多问题:
- 如何定时调度某个任务?
- 如何在某个任务执行完成后再去执行另一个任务?
- 如何在任务失败时候发出预警?
- ......
-面对这些问题,工作流调度程序应运而生。Azkaban就是其中之一,也是大数据场景下使用最为广泛的工作流调度系统之一。
+面对这些问题,工作流调度系统应运而生。Azkaban就是其中之一。
#### 1.2 功能
-Azkaban产生于LinkedIn,在多种大数据生成环境下使用多年,具备以下功能:
+Azkaban产生于LinkedIn,并经过多年生产环境的检验,它具备以下功能:
- 兼容任何版本的Hadoop
- 易于使用的Web UI
@@ -30,7 +30,7 @@ Azkaban产生于LinkedIn,在多种大数据生成环境下使用多年,具
- SLA警报和自动查杀失败任务
- 重试失败的任务
-Azkaban是基于可用性设计的,在使用上确实做到了简单易用,页面整体的风格也比较明朗,下面是其WEB UI界面:
+Azkaban的设计理念是在保证功能实现的基础上兼顾易用性,其页面风格清晰明朗,下面是其WEB UI界面:
@@ -40,27 +40,26 @@ Azkaban 和 Oozie 都是目前使用最为广泛的工作流调度程序,其
#### 功能对比
-- 两者均可以调度Linux命令、MapReduce、Spark、Pig、Java、Hive等工作流任务
-- 两者均可以定时执行工作流任务
+- 两者均可以调度Linux命令、MapReduce、Spark、Pig、Java、Hive等工作流任务;
+- 两者均可以定时执行工作流任务。
#### 工作流定义
-- Azkaban使用Properties(Flow 1.0)和 YAML(Flow 2.0)文件定义工作流
-- Oozie使用hadoop流程定义语言(hadoop process defination language,hPDL)来描述工作流,hPDL是一种XML流程定义语言
+- Azkaban使用Properties(Flow 1.0)和YAML(Flow 2.0)文件定义工作流;
+- Oozie使用Hadoop流程定义语言(hadoop process defination language,HPDL)来描述工作流,HPDL是一种XML流程定义语言。
#### 资源管理
-- Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作
-- Oozie暂无严格的权限控制
+- Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作;
+- Oozie暂无严格的权限控制。
#### 运行模式
-Azkaban 3.x 之后版本提供2种运行模式:
++ Azkaban 3.x 提供了两种运行模式:
+ + **solo server model(单服务模式)** :元数据默认存放在内置的H2数据库(可以修改为MySQL),该模式中`webServer`(管理服务器)和 `executorServer`(执行服务器)运行在同一个进程中,进程名是`AzkabanSingleServer`。该模式适用于小规模工作流的调度。
+ + **multiple-executor(分布式多服务模式)** :存放元数据的数据库为MySQL,MySQL应采用主从模式进行备份和容错。这种模式下`webServer`和`executorServer`在不同进程中运行,彼此之间互不影响,适合用于生产环境。
-- solo server model(单服务模式):元数据默认存放在内置的H2数据库(也可以修改为MYSQL),该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是AzkabanSingleServer。该模式适用于小规模的使用。
-- multiple-executor(分布式多服务模式):存放元数据的数据库为MYSQL,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行,这种模式下,管理服务器和执行服务器互不影响,适合用于生产环境。
-
-Oozie使用Tomcat等Web服务器作为Web页面展示容器,默认使用derby存储工作流元数据,由于derby过于轻量,实际中基本使用MySQL作为Oozie的元数据库。
++ Oozie使用Tomcat等Web容器来展示Web页面,默认使用derby存储工作流的元数据,由于derby过于轻量,实际使用中通常用MySQL代替。
@@ -68,10 +67,10 @@ Oozie使用Tomcat等Web服务器作为Web页面展示容器,默认使用derby
## 三、总结
-如果你的工作流不是特别复杂,没有超出了Azkaban的处理范围,则推荐轻量级的Azkaban,主要基于以下原因:
+如果你的工作流不是特别复杂,推荐使用轻量级的Azkaban,主要有以下原因:
-+ 安装方面:Azkaban 3.0 之前都是提供安装包的,解压配置部署即可。Azkaban 3.0 之后的版本需要编译,这个编译时基于gradle进行的,自动化程度也比较高,只需要按步骤执行编译命令即可;
-+ 页面设计:Azkaban的界面比较简单易用,所有任务的执行结果、执行日志、任务之间的依赖关系都可以从界面上直观查看;
-+ 配置方面:在Flow 1.0 版本的工作流定义是基于Properties文件的,这个时候的限制可能会多一点,但是在Flow 2.0 中支持YARM语法来进行配置,熟悉Spring开发的朋友可能都知道Spring Boot就采用的YAML代替之前繁重的XML,YAML语法使得Azkaban Flow 的配置更为简单、灵活。
++ **安装方面**:Azkaban 3.0 之前都是提供安装包的,直接解压部署即可。Azkaban 3.0 之后的版本需要编译,这个编译时基于gradle的,自动化程度比较高;
++ **页面设计**:所有任务的依赖关系、执行结果、执行日志都可以从界面上直观查看到;
++ **配置方面**:Azkaban Flow 1.0 基于Properties文件来定义工作流,这个时候的限制可能会多一点。但是在Flow 2.0 就支持了YARM。YARM语法更加灵活简单,著名的微服务框架Spring Boot就采用的YAML代替了繁重的XML。
diff --git a/notes/installation/Azkaban_3.x_编译及部署.md b/notes/installation/Azkaban_3.x_编译及部署.md
index a2b1f8d..c1661e1 100644
--- a/notes/installation/Azkaban_3.x_编译及部署.md
+++ b/notes/installation/Azkaban_3.x_编译及部署.md
@@ -84,9 +84,8 @@ Azkaban 的编译过程中用到Git下载部分需要的Jar包的,所以需要
按照官方文档的说明,Azkaban 3.x 之后版本提供2种运行模式:
-+ solo server model(单服务模式):元数据默认存放在内置的H2数据库(也可以修改为MYSQL),该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是AzkabanSingleServer。该模式适用于小规模的使用。
-
-+ multiple-executor(分布式多服务模式):存放元数据的数据库为MYSQL,采用主从设置进行备份,管理服务器(webServer)和执行服务器(executorServer)在不同进程中运行,这种模式下,管理服务器和执行服务器互不影响,适合用于生产环境。
++ **solo server model(单服务模式)** :元数据默认存放在内置的H2数据库(可以修改为MySQL),该模式中`webServer`(管理服务器)和 `executorServer`(执行服务器)运行在同一个进程中,进程名是`AzkabanSingleServer`。该模式适用于小规模工作流的调度。
+- **multiple-executor(分布式多服务模式)** :存放元数据的数据库为MySQL,MySQL应采用主从模式进行备份和容错。这种模式下`webServer`和`executorServer`在不同进程中运行,彼此之间互不影响,适合用于生产环境。