Hadoop生态圈之Azkaban(一)

Azkaban

1.工作流

​       工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。

​       工作流解决的主要问题是:为了实现某个业务目标,利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

​       一个完整的数据分析系统通常都是有多个前后依赖的模块组合构成的:数据采集、数据预处理、数据分析、数据展示等。各个模块单元之间存在事件先后依赖关系,且存在着周期性重复。

2.工作流调度工具之间对比

特性HamakeOozieAzkabanCascading
工作流描述语言XMLXML (xPDL based)text file with key/value pairsJava API
依赖机制data-drivenexplicitexplicitexplicit
是否要 web 容器NoYesYesNo
进度跟踪console/log messagesweb pageweb pageJava API
Hadoop job 调度 支持noyesyesyes
运行模式command line utilitydaemondaemonAPI
Pig 支持yesyesyesyes
事件通知nononoyes
需要安装noyesyesno
支持的 hadoop 版本0.18+0.20+currently unknown0.18+
重试支持noworkflownode evelyesyes
运行任意命令yesyesyesyes
Amazon EMR 支 持yesnocurrently unknownyes

3.Azkaban 调度器

Azkaban 是由 linkedin(领英)公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban 使用 job 配置文件建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。

4.Azkaban 功能特点

  • 提供功能清晰,简单易用的 Web UI 界面

  • 提供 job 配置文件快速建立任务和任务之间的依赖关系

  • 提供模块化和可插拔的插件机制,原生支持 command、Java、Hive、Pig、Hadoop

  • 基于 Java 开发,代码结构清晰,易于二次开发

5.Azkaban 原理架构

 

  • mysql 服务器

    • 存储元数据:项目名称、项目描述、项目权限、任务状态、SLA 规则等

  • AzkabanWebServer

    • 对外提供 web 服务,使用户可以通过 web 页面管理。

    • 职责包括项目管理、权限授权、任务调度、监控 executor

  • AzkabanExecutorServer

    • 负责具体的工作流的提交、执行

6.Azkaban 三种部署模式

  • solo-server mode

    • 该模式中 webServer 和 executorServer 运行在同一个进程中,进程名是 AzkabanSingleServer。 使用自带的 H2 数据库。 这种模式包含 Azkaban 的所有特性,但一般用来学习和测试。

  • two-server mode

    • 该模式使用 MySQL 数据库, Web Server 和 Executor Server 运行在不同的进程中

  • multiple-executor mode

    • 该模式使用 MySQL 数据库, Web Server 和 Executor Server 运行在不同的机器中。 且有多个 Executor Server。 该模式适用于大规模应用。

 

Azkaban 使用

1. shell command 调度

1.1 创建 job 描述文件

vi command.job

#command.job
type=command
command=echo 'hello'

1.2 将 job 资源文件打包成 zip 文件

zip command.job

1.3 通过 azkaban 的 web 管理平台创建 project 并上传 job 压缩包

创建 project

上传 zip 包

启动执行该 job

2. job 依赖调度

2.1 创建有依赖关系的多个 job 描述

第一个 job: foo.job

# foo.job
type=command
command=echo foo

第二个 job:bar.job 依赖 foo.job

# bar.job
type=command
dependencies=foo
command=echo bar

2.2 将所有 job 资源文件打包到一个 zip 包中

2.3 在 azkaban 的 web 管理界面创建工程并上传 zip 包

2.4 启动工作流 flow

 

3. HDFS 任务调度

4. MAPREDUCE 任务调度

5. HIVE 脚本任务调度

 

 

6. 定时任务调度

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>