Azkaban 入门到放弃

1. Azkaban是什么?

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban是linkin的开源项目,开发语言为Java

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

2.Azkaban典型使用场景

​ ​ ​ ​ ​ ​ ​ ​ ​ 实际当中经常有这些场景:每天有一个大任务,这个大任务可以分成A,B,C,D四个小任务,A,B任务之间没有依赖关系,C任务依赖A,B任务的结果,D任务依赖C任务的结果。一般的做法是,开两个终端同时执行A,B,两个都执行完了再执行C,最后再执行D。这样的话,整个的执行过程都需要人工参加,并且得盯着各任务的进度。但是我们的很多任务都是在深更半夜执行的,通过写脚本设置crontab执行。其实,整个过程类似于一个有向无环图(DAG)。每个子任务相当于大任务中的一个流,任务的起点可以从没有度的节点开始执行,任何没有通路的节点之间可以同时执行,比如上述的A,B。总结起来的话,我们需要的就是一个工作流的调度器,而azkaban就是能解决上述问题的一个调度器。

3.Azkaban官网

​ ​ ​ ​ ​ ​ ​ ​ ​ https://azkaban.github.io/

img

img

4.Azkaban的功能特点

​ ​ ​ 它具有如下功能特点:

​ ​ ​ ​ ​ ​ ​ ​ ​ 1、Web用户界面

​ ​ ​ ​ ​ ​ ​ ​ ​ 2、方便上传工作流

​ ​ ​ ​ ​ ​ ​ ​ ​ 3、方便设置任务之间的关系

​ ​ ​ ​ ​ ​ ​ ​ ​ 4、工作流调度

​ ​ ​ ​ ​ ​ ​ ​ ​ 5、认证/授权

​ ​ ​ ​ ​ ​ ​ ​ ​ 6、能够杀死并重启工作流

​ ​ ​ ​ ​ ​ ​ ​ ​ 7、模块化和可插拔的插件机制

​ ​ ​ ​ ​ ​ ​ ​ ​ 8、项目工作区

​ ​ ​ ​ ​ ​ ​ ​ ​ 9、工作流和任务的日志记录和审计

5.Azkaban的架构

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。

​ ​ ​ ​ ​ ​ ​ ​ ​ 也可以用其代替crontab来对周期性任务进行调度,并且更为直观,可靠,同时提供了美观的可视化管理界面。

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban由三部分构成:

​ ​ ​ ​ ​ ​ ​ ​ ​   1、Relational Database(Mysql)

​ ​ ​ ​ ​ ​ ​ ​ ​     azkaban将大多数状态信息都存于MySQL中,Azkaban Web Server 和 Azkaban Executor Server也需要访问DB。

​ ​ ​ ​ ​ ​ ​ ​ ​   2、Azkaban Web Server

​ ​ ​ ​ ​ ​ ​ ​ ​     提供了Web UI,是azkaban的主要管理者,包括 project 的管理,认证,调度,对工作流执行过程的监控等。

​ ​ ​ ​ ​ ​ ​ ​ ​   3、Azkaban Executor Server

​ ​ ​ ​ ​ ​ ​ ​ ​     调度工作流和任务,纪录工作流活任务的日志,之所以将AzkabanWebServer和AzkabanExecutorServer分开,    ​ ​ ​ ​ ​ ​ ​ ​ ​     主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级。

img

​ ​ ​ ​ ​ ​ ​ ​ ​ MySQL实例:Azkaban使用MySQL来存储项目和执行。

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban Web服务器:Azkaban使用Jetty作为Web服务器,用作控制器以及提供Web界面

​ ​ ​ ​ ​ ​ ​ ​ ​ Azkaban执行服务器:Azkaban执行服务器执行提交工作流。

6.Azkaban架构的三种运行模式

​ ​ ​ ​ ​ ​ ​ ​ ​ 1、solo server mode

​ ​ ​ ​ ​ ​ ​ ​ ​  H2

​ ​ ​ ​ ​ ​ ​ ​ ​  web server 和 executor server运行在一个进程里

​ ​ ​ ​ ​ ​ ​ ​ ​  最简单的模式,数据库内置的H2数据库,管理服务器和执行服务器都在一个进程中运行,任务量不大项目可以采用此模式。

​ ​ ​ ​ ​ ​ ​ ​ ​ 2、two server mode

​ ​ ​ ​ ​ ​ ​ ​ ​  MySQL(主从结构)

​ ​ ​ ​ ​ ​ ​ ​ ​  web server 和 executor server运行在不同的进程

​ ​ ​ ​ ​ ​ ​ ​ ​  数据库为mysql,管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响

​ ​ ​ ​ ​ ​ ​ ​ ​ 3、multiple executor mode

​ ​ ​ ​ ​ ​ ​ ​ ​  MySQL(主从结构)

​ ​ ​ ​ ​ ​ ​ ​ ​  web server 和 executor server运行在不同的进程

​ ​ ​ ​ ​ ​ ​ ​ ​  executor server有多个

​ ​ ​ ​ ​ ​ ​ ​ ​  该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个。

​ ​ ​ ​ ​ ​ ​ ​ ​  注意:这次采用第二种模式,管理服务器、执行服务器分进程,但在同一台主机上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值