一、是什么?
各任务之间存在时间的先后及依赖关系,为了更好的组织复杂的执行,需要工作流调度系统来完成这样的作业。Azkaban是一个开源的任务调度系统,负责任务的调度运行。就是用于在一个工作流内以一个特定的顺序运行一组工作和流程。
二、Azkaban的功能特点
它具有如下功能特点:
1、Web用户界面
2、方便上传工作流
3、方便设置任务之间的关系
4、工作流调度
5、认证/授权
6、能够杀死并重启工作流
7、模块化和可插拔的插件机制
8、项目工作区
9、工作流和任务的日志记录和审计
三、Azkaban架构
Azkaban有两种形式:
-
solo server:exec server +web server(安装包只有一个)
exec server:用于任务的执行
web server:提供一个web界面,允许我们通过浏览器的方式提交一些任务给exec server执行。
数据库:存储我们上传的任务,默认使用h2数据库存储任务。 -
多exec server(安装包分为一个web server和多个exec server)
多个exec server的目的:避免exec server挂掉。exec server的选择根据exec server的资源状态(cpu、内存、硬盘,运行个数)判断
四、Azkaban使用
在浏览器中输入Azkaban的web server的网址:产生相应的页面:
在本地编写.job文件上传到Azkaban项目中:
(1) 执行HDFS任务:
.job文件内容:
type=command
command=对hdfs操作命令
(2)执行MAPREDUCE任务:
a、创建job描述文件,及mr程序jar包
type=command
command=/export/servers/hadoop-2.6.0-cdh5.14.0/bin/hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar pi 3 5
b、将所有job资源文件打到一个zip包中
c、在azkaban的web管理界面创建工程并上传zip包
d、启动job
(3)执行HIVE任务:
hive的sql文件与.job文件共同压缩到一个.zip文件上传。
a .sql文件内容: sql命令
b .job文件内容:
type=command
command=/export/servers/hive-1.1.0-cdh5.14.0/bin/hive -f ‘hive.sql’