Azkaban 简介(一)

时间:2021-06-23 17:16:53   收藏:0   阅读:0

什么是任务调度

大数据平台技术框架支持的开发语言多种多样,开发人员的背景差异也很大,这就产生出很多不同类型的程序(任务)运行在大数据平台之上,如:MapReduce、Hive、Pig、Spark、Java、Shell、Python 等。

这些任务需要不同的运行环境,并且除了定时运行,各种类型之间的任务存在依赖关系,一张简单的任务依赖图如下:

技术图片

常见任务调度工具

Azkaban 是什么

Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,Azkaban 使用 job 文件建立任务之间的依赖关系,并提供 Web 界面供用户管理和调度工作流

Azkaban 特点

Azkaban 是由 Linkedin 开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban 定义了一种 KV 文件格式来建立任务之间的依赖关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。
它有如下功能特点:

Azkaban 与 Oozie 对比

Azkaban 和 Oozie 是市面上最流行的两种调度器。总体来说,Ooize 相比 Azkaban 是一个重量级的任务调度系统,功能全面,但部署和使用也更复杂,比较适合作为大型项目的任务调度系统。而 Azkaban 相对而言,配置和使用更为简单,能够满足常见的任务调度,比较适合作为中小型项目的任务调度系统。

Azkaban 和 Oozie 详情对比如下:

Azkaban 运行模式及架构

技术图片

Azkaban 三大核心组件
Azkaban有两种部署方式

Azkaban Web Server

AzkabanWebServer 是 Azkaban 的主要管理者,负责项目管理、身份验证、调度和监控执行,并且为用户界面

Azkaban Executor

提交和执行工作流,记录工作流日志,和 Azkaban WebServer 可以在同一台服务器,也可部署在独立的机器。把 Executor 单独分开有几个好处:

Azkaban 元数据库

技术图片

Azkaban 任务调度步骤

Azkaban 常见任务类型

执行 shell 命令
type=command
command=echo ‘hello‘
执行 shell 脚本
type=command
command=sh hello.sh
执行 Spark 程序
type=command
command=/usr/install/spark/bin/spark-submit --class com.test.AzkabanTest test-1.0-SNAPSHOT.jar
hive 命令\脚本
type=command
command=beeline -u jdbc:hive2://localhost:10000 -n hive -p hive -f ‘test.sql‘
执行 MapReduce 程序
type=command
command=${HADOOP_HOME}bin/hadoop jar hadoop-mapreduce-examples-2.8.0.jar
wordcount ${input} ${output}
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!