您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Module 17 Oozie架构原理
©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Oozie架构原理Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page1目录1.Oozie介绍2.Oozie架构与实现原理3.Oozie基本功能4.Oozie操作说明Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page21.1WhatisOozie?AworkflowschedulersystemtomanageApacheHadoopjobs.•基于工作流引擎的开源框架•运行在tomcat容器中•使用数据库存储工作流定义和实例•支持多种类型的Hadoop作业调度Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page31.2版本说明4.0.12014/03/314.1.02014/12/05Oozie当前使用版本新特性:1.支持hadoop版本0.23.X及以上2.改进、优化、BUG修复:约250新特性:1.支持hiveserver22.支持SPARK3.ProvideawaittoolinOozie4.改进、优化、BUG修改:约1404.2.02015/05/30Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page41.3环境要求Unixbox(testedonMacOSXandLinux)JavaJDK1.6+Maven3.0.1+Hadoop0.20.2+Pig0.7+JDKcommands(java,javac)mustbeinthecommandpath.TheMavencommand(mvn)mustbeinthecommandpath.说明:FusionInsightC50安装完成后默认满足以上要求Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page5目录1.Oozie介绍2.Oozie架构与实现原理3.Oozie基本功能4.Oozie操作说明Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page62.1架构Console提供对Oozie流程的查看和监控功能。Client通过接口控制workflow流程:可以执行提交流程,启动流程,运行流程,种植流程,恢复流程等操作。SDK软件开发工具包SDK(SoftwareDevelopmentKit)是被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。DBpg数据库。WebApp(Oozie)webApp(Oozie)即Oozieserver,可以用内置的Tomcat容器,也可以用外部的,记录的信息比如日志等放在pg数据库中。TomcatTomcat服务器是免费的开放源代码的Web应用服务器。HD组件底层执行Oozie编排流程的各个组件,包括MapReduce、Hive等。Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page72.2基本原理原理Oozie对工作流的编排,是基于workflow.xml文件来完成的。用户预先将工作流执行规则定制于workflow.xml文件中,并在job.properties配置上相关的参数,然后由OozieServer向MR提交一个Job来启动工作流。流程节点工作流由两种类型的节点组成,分别是“ControlFlowNodes”和“ActionNodes”。•ControlFlowNodes:控制工作流执行路径,包括start,end,kill,decision,fork,join。•ActionNodes:决定每个操作执行的任务类型,包括map-reduce,java,hive,shell,pig等。Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page82.3ActionNodes序号Action4.0.14.2.0C50已交付1Map-Reduce√√√2Streaming√√×3Pipes√√×4Pig√√×5Fs(HDFS)√√×6Ssh√√×7Sub-workflow√√×8Java√√√11Email√√×12Shell√√√13Hive√√√14Hive2×√×15Sqoop√√×17DistCp√√×18Spark×√×Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page92.4Map-ReduceActionNodeactionname=myfirstHadoopJobmap-reducejob-trackerfoo:9001/job-trackername-nodebar:9000/name-nodepreparedeletepath=hdfs://foo:9000/usr/tucu/output-data//preparejob-xml/myfirstjob.xml/job-xmlconfigurationpropertynamemapred.input.dir/namevalue/usr/tucu/input-data/value/propertypropertynamemapred.output.dir/namevalue/usr/tucu/input-data/value/propertypropertynamemapred.reduce.tasks/namevalue${firstJobReducers}/value/propertypropertynameoozie.action.external.stats.write/namevaluetrue/value/property/configuration/map-reduceokto=myNextAction/errorto=errorCleanup//actionmap-reduce:action类型job-tracker:Mapreducejobtracker地址name-node:HDFSnamenode地址configuration:action需要的参数ok:标注当前action执行成功后跳转的下个节点error:标注当前action执行失败后跳转的下个节点Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page102.5JavaActionNodeactionname=myfirstjavajobjavajob-trackerfoo:9001/job-trackername-nodebar:9000/name-nodepreparedeletepath=${jobOutput}//prepareconfigurationpropertynamemapred.queue.name/namevaluedefault/value/property/configurationmain-classorg.apache.oozie.MyFirstMainClass/main-classjava-opts-Dblah/java-optsargargument1/argargargument2/arg/javaokto=myotherjob/errorto=errorcleanup//actionjava:action类型job-tracker:Mapreducejobtracker地址name-node:HDFSnamenode地址configuration:action需要的参数main-class:java代码的main函数入口ok:标注当前action执行成功后跳转的下个节点error:标注当前action执行失败后跳转的下个节点Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page112.6HiveActionNodeactionname=myfirsthivejobhivexmlns=uri:oozie:hive-action:0.2job-trakerfoo:9001/job-trackername-nodebar:9000/name-nodepreparedeletepath=${jobOutput}//prepareconfigurationpropertynamemapred.compress.map.output/namevaluetrue/value/propertypropertynameoozie.hive.defaults/namevalue/usr/foo/hive-0.6-default.xml/value/property/configurationscriptmyscript.q/scriptparamInputDir=/home/tucu/input-data/paramparamOutputDir=${jobOutput}/param/hiveokto=myotherjob/errorto=errorcleanup//actionhive:action类型job-tracker:Mapreducejobtracker地址name-node:HDFSnamenode地址configuration:action需要的参数script:执行的sql文件ok:标注当前action执行成功后跳转的下个节点error:标注当前action执行失败后跳转的下个节点Copyright©2010HuaweiTechnologiesCo.,Ltd.Allrightsreserved.Page122.7流程编排举例workflow-appxmlns=uri:oozie:workflow:0.2name=wfstartto=first/actionname=firstmap-reduce.../map-reduceokto=second/errorto=fail//actionactionname=secondjava.../javaokto=end/errorto=fail//actionkillname=failmessageMap/Reducefailed,errormessage[${wf:errorMessage(wf:lastErrorNode())}]/message/killendname=end//workflow-app左侧为流程编排的一个举例。工作流是从start节点开始的,由start进入first,执行map-reduceaction计算,执行成功则进入second,失败则进入kill节点fail并打印错误信息。Second执行成功后,进入end节点,表示流程结束。Oozie使用HPDL来构造工作流,只有当上一个节点执行完成,才会进入下一个节点。所有“Act
本文标题:Module 17 Oozie架构原理
链接地址:https://www.777doc.com/doc-3367008 .html