Oozie--介绍及原理

介绍及原理

1、功能

  • 任务流调度框架:用于实现工作流的调度
    • 类似于Azkaban
    • 是所有的调度工具中功能最全面的一个,也是一个缺点,非常笨重不好使
    • 功能非常强大,架构比较复杂,使用和开发都比较复杂
  • 能实现整个Hadoop生态中几乎所有框架的调度
  • 调度类型
    • 定时调度:依赖某个时间触发
    • 依赖调度:依赖于程序运行的顺序
  • Cloudera公司研发的产品
    • 最早的设计是为了基于Hadoop生态圈构建分布式工作流调度
      • 很多个工作流,多台机器来处理所有的调度
  • 如何实现分布式的呢?
    • Azkaban:自己实现了分布式架构
    • Oozie:依赖于MapReduce来实现
      • 必须依赖于MapReduce
      • 类似于Sqoop、Hive一样的设计原理
      • 自己本身不是分布式的,但是我可以让我的程序用MapReduce变成分布式程序
      • 这种基于Hadoop生态的高度依赖,会导致这个工具会被淘汰
  • Hive
    • 分布式计算:Impala、Presto、SparkSQL
  • Sqoop
    • 采集数据库的数据
    • Logstash
    • Canal
  • Oozie
    • 任务流调度
    • Azkaban、Airflow

2、基本原理

  • 为什么依赖于MapReduce
    • 需要依靠MapReduce来作为分布式的程序运行
    • oozie将所提交运行的工作流封装成MapReduce程序,只有1个MapTask,提交给YARN
      • YARN是分布式的,会将这个MapReduce程序放在某台机器上运行
      • 这个工作流就被运行了
      • 举例
      • workflow => node01 node02 node-03
      • |
      • mapreduce(workflow) => yarn => node01 node02 node-03
  • 基本原理
    • 通过Oozie客户端提交一个程序给服务端
    • 服务端解析用户的工作流,生成DAG【有向无环图】
      • 通过XML来开发,定义DAG
      • 任意一个job在oozie是一个action
      • 多个action之间的依赖关系构成DAG工作流
    • 将工作流封装成MapReduce程序提交给YARN,由YARN分配到具体的一台机器上运行这个工作流
  • 为什么安装包这么大?
    • 因为Oozie的功能非常强大,可以调度各种类型的程序
    • 里面封装了各种程序需要用到的jar包
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值