工作流引擎服务器 Hadoop Oozie 介绍
<p> Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat.</p> <p> Oozie工作流中拥有多个Action,如Hadoop Map/Reuce job,Hadoop Pig job等,所有的Action以有向无环图(DAG Direct Acyclic Graph)的模式部署运行.所以在Action的运行步骤上是有方向的,只能上一个Action运行完成后才能运行下一个Action.</p> <p> Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造.</p> <p> Oozie工作流中的Action在运程系统运行如(Hadoop,Pig服务器上).一旦Action完成,远程服务器将回调Oozie的接口并通知 Action已经完成,这时Oozie又会以同样的方式执行工作流中的下一个Action,直到工作流中所有Action都完成(完成包括失败)</p> <p> Oozie工作流中包含可控制的工作流节点(control flow node)和Action节点(action node).</p> <p> Control flow node其实可以理解为Oozie的语法,比如可以定义开始(start),结束(end),失败(fail)节点.开始节点就表示从该节点开始运行.同 时也提供一种机制去控制工作流的执行过程,如选择(decision),并行(fork),join节点.</p> <p> Oozie工作流提供各种类型的Action用于支持不同的需要,如Hadoop Map/Reduce,Hadoop File System,Pig,SSH,HTTP,Email,Java,以及Oozie子流程.Oozie也支持自定义扩展以上各种类型的Action .</p> <p> Oozie工作流允许自定义参数,如${inputDir}.</p> <p> </p> <p> </p> <p> <span style="color:#ff0000;font-size:medium;"><strong>WordCount Workflow Example:</strong></span></p> <p> <span style="color:#ff0000;font-size:small;">工作流图:</span></p> <p><img title="f472184a-96d5-3307-8d4b-c92fcf5193b1.png" border="0" alt="f472184a-96d5-3307-8d4b-c92fcf5193b1.png" src="https://simg.open-open.com/show/d5f7c2bc2392dd5867d53509881d3619.png" width="566" height="263" /></p> <p> <span style="color:#ff0000;font-size:small;">workflow.xml</span></p> <pre class="brush:xml; toolbar: true; auto-links: false;"><workflow-app name='wordcount-wf' xmlns="uri:oozie:workflow:0.1"> <start to='wordcount'/> <action name='wordcount'> <map-reduce> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <configuration> <property> <name>mapred.mapper.class</name> <value>org.myorg.WordCount.Map</value> </property> <property> <name>mapred.reducer.class</name> <value>org.myorg.WordCount.Reduce</value> </property> <property> <name>mapred.input.dir</name> <value>${inputDir}</value> </property> <property> <name>mapred.output.dir</name> <value>${outputDir}</value> </property> </configuration> </map-reduce> <ok to='end'/> <error to='end'/> </action> <kill name='kill'> <message>Something went wrong: ${wf:errorCode('wordcount')}</message> </kill/> <end name='end'/> </workflow-app></pre> <p> 同时自己成<span style="background-color:#fafafa;white-space:pre;">org.myorg.WordCount这个Hadoop Map/Reduce Job,网上搜索一大把.</span></p> <p><span style="background-color:#fafafa;white-space:pre;">配置打包后通过OozieClient提交给Hadoop就直接可以运行了.<br /> <br /> 来自:<a href="/misc/goto?guid=4959517983232200487" target="_blank">http://guoyunsky.iteye.com/blog/1391975</a></span></p>
本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!