Oozie的作用:
1、统一调度hadoop系统中常见的mr任务启动、 hdfs操作、 shell调度、 hive操作等
2、使得复杂的依赖关系、时间触发、事件触发使用xml语言进行表达,开发效率提高
3、一组任务使用一个DAG来表示,使用图形表达流程逻辑更加清晰
4、支持很多种任务调度,能完成大部分hadoop任务处理
5、程序定义支持EL常量和函数,表达更加丰富
Oozie是一个开源的工作流调度系统,它能够管理逻辑复杂的多个Hadoop作业,按照指定的顺序将其协同运行起来。
例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示:
1、通过Hadoop先将原始数据同步到HDFS上;
2、借助MapReduce计算框架对原始数据进行转换,生成的数据以分区表的形式存储到多张Hive表中;
3、需要对Hive中多个表的数据进行JOIN处理,得到一个明细数据Hive大表;
4、将明细数据进行复杂的统计分析,得到排序后的报表信息;
5、需要将统计分析得到的结果数据同步到业务系统中,供业务调用使用。
上述过程可以通过工作流系统来编排任务,最终生成一个工作流实例,然后每天定时启动运行这个实例即可。
在这种依赖于Hadoop存储和处理能力要求的应用场景下,Oozie可能能够简化任务调度和执行。
Oozie的主要功能包括:组织各种工作流(包括Pig、Hive等),以规定方式执行工作流(包括定时任务、定数任务、数据促发任务等),托管工作流(包括命令行接口,任务失败时的通知机制,如邮件通知等)
由于,需要存储工作流信息,为提高可靠性,确保任务配置不丢失,Oozie内部使用数据库来存储工作流相关信息,用户可以使用Oozie内嵌的Derby数据库,也可以使用MySQL、PostgreSQl、Orcale等数据库。
本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6117686.html,如需转载请自行联系原作者