文章目录
- 常见调度工具
- Oozie
- Azkaban
-
- Azkaban运行模式及架构
- Azkaban Web Server
- Azkaban Executor
- Azkaban 元数据库重要表介绍
- Azkaban编译安装
- Azkaban启动停止
- Azkaban Web 界面菜单 介绍
- Azkaban 用户管理
- Azkaban 用户管理
- Azkaban 新建项目
- Azkaban 新建项目
- Azkaban 上传、执行、调度
- Azkaban 调度(schedul)策略
- Azkaban 其他操作
- Azkaban 常见任务类型
- Azkaban 一个 Job 内运行多个任务
- Azkaban job 常用属性 配置
- Azkaban 网状依赖
- Azkaban 案例实战
- Oozie 与 Azkaban
- Azkaban 常见问题
常见调度工具
- CRONTAB (最简单的方式,适合不是非常复杂的场景,比如只按照时间来调度)
- OOZIE(Hadoop自带的)
- AZKABAN(开源的一个调度工具)
- 定制开发
Oozie
Oozie是一个基于工作流的调度系统,用来管理Hadoop中的的各种操作。
它是运行在Java Servlet容器中的Web应用,并用数据库存储工作流定
义及状态等元数据。
- Hadoop生态自带调度系统
- 工作流通过DAG(有向无环图)来控制
- 调度可以基于时间和数据驱动
- 工作流通过hPDL定义(一种XML流程定义语言)
- 资源文件(脚本、Jar包等)存放在HDFS
Oozie架构
中间块Oozie Server是一个web服务
Oozie运行原理
原理:通过DAG有向无环图控制workflow.xml中定义好的工作流节点,Oozie Server向Hadoop集群提交map-only的Oozie Launcher作业,Launcher启动工作流中要执行的操作
节点(Node):
- 控制节点(CONTROL NODE):工作流的流程控制,start,end,fork,join,kill
- 动作节点(ACTION NODE) : hive,shell,sqoop,pig,mr
Oozie 工作三大核心
- Workflow
控制流程及动作节点定义,依赖关系配置,都是在这里实现。 - Coordinator
按照时间或者数据驱动调度workflow。 - Bundle
Coordinator的集合
Oozie 元数据库
主要关注红色的表
Oozie Action 节点类型
Oozie Job 创建方式
- HUE
- OOZIE命令行
Hue 创建 Oozie job 步骤及演示
- 登陆CMF
- 进入HUE WEB页面
- 打开Workflows菜单=>Editors => Workflows
- 创建,选择Action类型,配置相关信息,保存(红框里是action类型比如hive,spark,shell等等)
拖拽shell的action