Oozie (一) 简介+架构+运行原理+工作三大核心
常见的调度工具:Oozie、Azkaban、Crontab(适用于不是非常复杂的调度场景)、定制开发
一、简介
Oozie是一个基于工作流的调度系统,用来管理Hadoop的各种操作.
它是运行在Java Servlet容器中的 Web 应用,并用数据库存储工作流定义及状态等元数据信息.
1.Hadoop生态自带调度系统
2.工作流通过DAG(有向无环图)来控制
3.调度可以基于时间和数据驱动
4.工作流通过hPDL定义(一种XML流程定义语言)
5、资源文件(脚本、jar包等)存放在HDFS
二、架构
三、运行原理
原理:通过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
四、工作三大核心
1.Workflow
控制流程及动作节点定义,依赖关系配置
2.Coordinator
按照时间或者数据驱动调度workflow0
3.Bundle
Coordinator的集合