一、Azkaban概述

来源:互联网 发布:音乐喷泉动画制作软件 编辑:程序博客网 时间:2024/05/16 07:47

azkaban由LinkedIn实现,解决了Hadoop的 Job 依赖的问题。在ETL及数据分析工作中,我们经常需要按顺序执行一些任务。
最初只是个单服务的解决方案,随着这些年来Hadoop用户的增加,阿兹卡班已经演变成为一个更可靠的解决方案。
azkaban由3个主要组成部分:
  • 关系型数据库(MySQL)
  • Azkaban Web Server
  • Azkaban Executor Server
阿兹卡班概述

关系型数据库(MySQL)
阿兹卡班使用MySQL来存储它的状态。无论是Azkaban Web Server 还是 Azkaban Executor Server都是通过数据库存储。
Azkaban Web Server使用DB做什么?
Web Server 使用数据库的原因如下:
  • 项目管理 -项目,项目的权限,以及上传的文件。
  • 执行流动状态- 存储 Executor 对 Flow 状态的跟踪。
  • Flow/Job历史记录- 搜索 Job 和 Flow执行的历史记录以及他们的日志文件。
  • Scheduler - 存储调度作业的状态。
  • SLA- 存储所有SLA规则
Azkaban Executor Server使用DB做什么?
Executor Server使用数据库的原因如下:
  • 进入项目- 从数据库中检索项目文件。
  • 执行 Flow/Job- 获取并更新 Flow 执行时产生的数据
  • 日志-存储 Job 及 Flow 的日志。
  • 互通的依赖-如果流在不同的 Executor 运行时,它需要从数据库获取状态

AzkabanWebServer
该AzkabanWebServer是阿兹卡班的主要的管理者它处理项目管理,认证,调度和监控。它也可作为Web用户界面。
使用阿兹卡班是很容易。阿兹卡班使用*.jobkey-value属性文件定义每个任务,并且_dependencies_属性来定义 Job 的依赖关系。这些 job 文件及相关的代码可以被压缩成一个*.zip文件,可以通过阿兹卡班的用户界面或者 curl 上传。

AzkabanExecutorServer
在之前的版本,阿兹卡班只有一个服务,它拥有AzkabanWebServer 和 AzkabanExecutorServer的功能。现在 Executor 已经被分离成单独的服务。分离这些服务有这几个原因:当其中有 Executor 出现故障时,我们可以迅速扩展 Executor 数量。此外,在升级阿兹卡班时,​​对用户的影响也下降到最小。由于阿兹卡班的使用量的增长,我们发现,升级阿兹卡班越来越难。

0 0
原创粉丝点击