Azkaban 基础篇

工作流概述:

  • 请假、借款
  • JavaEE:jBPM、Activiti




工作流调度系统的重要性


crontab的问题和优势:
对于定时调度能够很好的执行,但是对于依赖调度束手无策,只能够估计时间

常用的调度框架:
Azkaban LinkedIn开源
Oozie apache开源
Zeus 阿里开源

Azkaban 概述:

特点
注意模块化和可插拔特性

Azkaban 架构




WebServer主要是界面

Azkaban 运行模式




测试

首先创建project


在Projects中可以看到

点进去后,点upload文件

选择zip包


upload后点击Execute flow



点击Execute

显示执行成功了

点进去看一下

Flow Log


再点job list 中的details

可以看到输出了Hello World

Azkaban实战篇

Dependency 作业

Dependencies是任务的依赖,表示执行之前需要先执行的任务


同样的套路


有Dependencie时,名称是以最后一个job的名字为准的

点击Execute


成功了后job list

job bar中成功输出了bar

HDFS 作业



同样的方式将zip放在Azkaban上进行Execute,成功输出hadoop命令

MapReduce 作业

执行Hadoop任务

注意放在job中的时候路径要写全

进行压缩

如果command写错了,也可以直接在Azkaban中进行修改


试一下Hadoop的wordcount


改写一下job文件

试用edit在Azkaban中修改command

再跑一遍,成功执行

Hive作业

一份txt文件


建表的HQL语法如下

将数据写入表中

Hive中执行sql语句

创建test.sql

把sql和hive job打包

放入Azkaban中运行,成功执行

定时作业

找到执行时的Schedule




在Scheduling模块可以看到调度

有显示调度的具体时间

邮件告警

还是到Execute flow 中来



Azkaban中的SLA设置