- 2.1、在Azkaban的Web UI界面上操作
- 2.2、运行一个最基本的打印程序
- 2.3、运行Job Dependencies
- 2.4、跑一个mapreduce的wordcount作业
- 2.5、自己设计一个架构
一、Azkaban简介
1、官网:https://azkaban.github.io/
- 它并不是一个apache的顶级项目,是一个开源工作流管理器
2、Azkaban是一个批处理工作流作业调度器,由领英创建的运行Hadoop job的;Azkaban通过作业的依赖关系来解决排序问题,并提供一个易于使用的web用户界面来维护和追踪你的工作流。
- Hadoop不单单是Hadoop,指的是Hadoop生态圈的文件;
官方的定义:
- Azkaban is a distributed Workflow Manager, implemented at Linkedln to solve the problem of Hadoop job dependencies, we had jobs that needed to run in order, from ETL jobs to data analytics products.
官网如下图,是很复杂的,需要编写文件才能阐述出文件的依赖关系:
Azkaban的特性:
1、Compatible with any version of Hadoop
能够兼容各种版本的Hadoop
2、Easy to use web UI
轻易使用Web UI
3、Simple web and http workflow uploads
简单的web和http工作流
4、Project workspaces
工作空间
5、Scheduling of workflows
工作流调度
6、Modular and pluginable
模块化和可插拔的
7、Authentication and Authorization
验证和授权
8、Tracking of user actions
追踪用户行为
9、Email alerts on failure and successes
邮件发送不管成功还是失败
10、SLA alerting and auto killing
11、Retrying of failed jobs
失败任务的重试
如上这些是调度系统的最低要求。
from ETL jobs to data analytics products.
1.1、常见的调度框架
Azkaban:调度框架
首先要做ETL --> 做各种维度指标的统计分析,
使用MR实现,shell1
Hive SQL --> shell2
凌晨1店ETL ⇒ ???
SQL ???
解析:
基于Hadoop的离线电商项目分析:第一步做ETL,然后做的是各种维度的坐标统计分析,使用MR实现的,最终底层是shell1,然后使用的是Hive SQL,底层调用的也是shell;比如ETL是凌晨1点开始跑的,我们怎么知道这个ETL作业是多久跑完的呢?
之前是一种预估的方式,凌晨1点的ETL比如在2点之前跑完还是2点之后跑完,这个SQL应该是什么时候开始跑呢,两