Hadoop高级编程之--Oozie

来源:互联网 发布:mysql 删除外键 编辑:程序博客网 时间:2024/06/07 22:46

利用Apache Oozie Workflow引擎,可以解决基于特定时间,特定时间,特定资源的一组MapReduce作业。

Oozie主要由下面4个功能组件构成:

1,Oozie Workflow--该组件用于定义和执行一个特定顺序的MapReduce,Hive和Pig作业。

2,Oozie Coordinator --该组件用于支持事件,系统资源存在性等条件的Workflow的自动执行。

3,Oozie Bundle -- 该引擎可以定义和执行“一束”应用,从而提供一个批量化方法,将一组Coordinator应用程序一起进行管理。

4,Oozie 服务等级协定(Service Level Agreement, SLA) --该组件支持Workflow应用执行过程的记录跟踪。

Oozie Workflow的定义主要基于以下概念:

1,动作(Action)--这是关于一个的Workflow任务/步骤的约定。eg:一个MapReduce的作业,一段代码执行,一个Hive脚步等。

2,转换(Transition)--这是关于一个给定动作完成时,哪个动作可以随后执行的约定。描述一种动作之间的依赖关系的方法。

3,Workflow是一组排列在一张依赖顺序图中的动作和转换集合。

4,Workflow应用程序--这是由Oozie Workflow语言定义的Oozie Workflow。Oozie服务器会对Oozie Workflow应用程序定义进行解释,并保存到Oozie数据库中。

5,Workflow作业--这是Oozie服务器中的一个进程,它解释Oozie Workflow定义。Oozie Workflow任务会控制动作提交的顺序和条件。

Oozie 还支持两种不同类型的动作(Action):

1,同步--该类型的动作在Oozie服务器自己的执行线程中执行。

2,异步--该类型的动作在Hadoop集群中以MapReduce(或Hive/Pig/Sqoop)作业的形式执行。Oozie服务器初始化异步动作的执行,并等待起结束。

Oozie Workflow的转换,有如下两种类型的条件来决定:

1,结构条件--该类转换时在Workflow DAG中静态定义的(转换和fork-join结构)。

2,运行时执行条件--该类型转换可以使用前面动作执行结果,形式包括进程变量(switch-case结构)和成功/失败路径。

控制流节点:

Start节点--start --定义Oozie Workflow的起始点

End节点 -- end --定义Oozie Workflow的结束点

Decision节点 -- decision --用于表述“switch-case”逻辑

Fork节点--fork--该节点会把执行流程叉开为多个并发的路径

Join节点--join--该节点表示Workflow的执行要进行等待,知道前一次fork节点产生的所有并发执行路径都达到join节点

Sub-Workflow节点--sub-workflow--该节点会调用一个子Workflow

Kill节点--kill--该节点会使Oozie服务器强制杀死当前的Workflow作业







0 0
原创粉丝点击