立即注册 登录
About云-梭伦科技 返回首页

NEOGX的个人空间 https://www.aboutyun.com/?33 [收藏] [复制] [分享] [RSS]

日志

工作流引擎服务器 Hadoop Oozie

已有 1200 次阅读2015-11-12 20:05 | 服务器, 工作流

 Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat.

       Oozie工作流中拥有多个Action,如Hadoop Map/Reuce job,Hadoop Pig job等,所有的Action以有向无环图(DAG Direct Acyclic Graph)的模式部署运行.所以在Action的运行步骤上是有方向的,只能上一个Action运行完成后才能运行下一个Action.

       Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造.

       Oozie工作流中的Action在运程系统运行如(Hadoop,Pig服务器上).一旦Action完成,远程服务器将回调Oozie的接口并通知 Action已经完成,这时Oozie又会以同样的方式执行工作流中的下一个Action,直到工作流中所有Action都完成(完成包括失败)

       Oozie工作流中包含可控制的工作流节点(control flow node)和Action节点(action node).

       Control flow node其实可以理解为Oozie的语法,比如可以定义开始(start),结束(end),失败(fail)节点.开始节点就表示从该节点开始运行.同 时也提供一种机制去控制工作流的执行过程,如选择(decision),并行(fork),join节点.

       Oozie工作流提供各种类型的Action用于支持不同的需要,如Hadoop Map/Reduce,Hadoop File System,Pig,SSH,HTTP,Email,Java,以及Oozie子流程.Oozie也支持自定义扩展以上各种类型的Action .

       Oozie工作流允许自定义参数,如${inputDir}.

 

 

        WordCount Workflow Example:

        工作流图:

 

        workflow.xml

<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>






路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条