oozie

应用场景

Apache Oozie 是用于 Hadoop 平台的一种工作流调度引擎。该框架使用 Oozie 协调器促进了相互依赖的重复工作之间的协调,您可以使用预定的时间或数据可用性来触发 Apache Oozie。您可以使用 Oozie bundle 系统提交或维护一组协调应用程序。作为本练习的一部分,Oozie 运行了一个 Apache Sqoop 作业,以便在 MySQL 数据库中的数据上执行导入操作,并将数据传输到 Hadoop 分布式文件系统 (HDFS) 中。可以利用导入的数据集执行 Sqoop 合并操作,从而更新较旧的数据集。通过利用 UNIX shell 操作,可从 MySQL 数据库中提取用来执行 Sqoop 作业的元数据。同理,可执行 Java 操作来更新 Sqoop 作业所需的 MySQL 数据库中的元数据。

操作步骤

1 Oozie编排架构

这里写图片描述

存在Sqoop的任务,使得关系型数据库Mysql中的数据导入到HDFS中,通过Oozie可以定时执行Sqoop操作。

2 Oozie使用

这里写图片描述

这里写图片描述

3 Oozie,Tez区别

Tez
DAG作业分布式计算框架,简化MapReduce处理工作流问题频繁读取HDFS的缺陷。
Oozie
用于 Hadoop 平台的一种工作流调度引擎,可以配置sqoop,hive,pig,spark,java程序,MR等任务流程式执行,并可以定时执行。

Tez是偏向底层的,Oozie偏向顶层,它是对MR, Hive, Pig等进行DAG作业设计,将各种工具实现的功能组合在一起。 Tez是Hortonworks开发的。tez运行在Yarn上的,DAG工作流,底层设计,对Map和Reduce进一步拆分。Map拆成Input,Processor, Sort, Merger, Output,Reduce拆分成Input, Shuffle, Sort, Merger, Processor和Output。拆分后的单元可以任意组合,组装成大的DAG作业。目标,替换性能较为低下的Hive和Pig。