由于一个单独的mapreduce不能解决问题,我们需要同时编写几个mapreduce或同时使用sqoop,mapreduce,pig和hive来实现,因而我们需要oozie。
oozie是一个可以包含所有程序并按顺序依次调用它们的工作流和调节引擎。
oozie包含workflow engine(工作流引擎,通常用于顺序执行程序)、corrdinating engine(协调引擎,用于设置事件)、oozie server(主服务器,用来向数据库发送和接受请求)、database、oozie console ,其中oozie workflow就是一组有用户定义的按指定顺序去执行的事件图,oozie coordinator 是主要调度job和基于某个事件执行job的组件,bundle可以看做是一个包含多个coordinator和workflow的应用程序。
oozie workflow有两个组件,分别为控制节点和动作节点。控制节点包括开始和结束,并行和连接,选择,终止。真正的执行过程发生在动作节点上,oozie支持的动作包括email和shellscript、pig、hive mapreduce、sqoop、ssh和distcp、extensible
oozie工作流流程:
1、首先oozie客户端把工作流提交给oozie服务器,
2、服务器获取工作流后,把它提交给jobtracker,jobtracker会运行mapper和reducer
3、然后结束这个job,并将输出写到hdfs上。或是运行失败,kill进程