年4月大數(shù)據(jù)hcna-big data v1.0中文培訓(xùn)module12oozie工作流引擎_第1頁
年4月大數(shù)據(jù)hcna-big data v1.0中文培訓(xùn)module12oozie工作流引擎_第2頁
年4月大數(shù)據(jù)hcna-big data v1.0中文培訓(xùn)module12oozie工作流引擎_第3頁
年4月大數(shù)據(jù)hcna-big data v1.0中文培訓(xùn)module12oozie工作流引擎_第4頁
年4月大數(shù)據(jù)hcna-big data v1.0中文培訓(xùn)module12oozie工作流引擎_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

修訂記錄建議直接將本膠片另存,然后在此膠片的基礎(chǔ)上進行編輯。本部分包含:培訓(xùn)目標(biāo)、目錄、習(xí)題、總結(jié)、問題等模板。參考IT解決方案產(chǎn)品培訓(xùn)課程開發(fā)內(nèi)容要素,按照模塊開發(fā)。課程編碼適用產(chǎn)品產(chǎn)品版本課程版本ISSUEH13-711FusionInsightHDV100R002C60V1.0開發(fā)/優(yōu)化者時間審核人開發(fā)類型(新開發(fā)/優(yōu)化)向宏偉002668902016年6月高冬冬wx321719新開發(fā)本頁不打印Oozie總體篇學(xué)完本課程后,您將能夠:掌握Oozie的基本概念掌握Oozie的使用場景掌握Oozie系統(tǒng)架構(gòu)掌握Oozie的基本功能Oozie基本介紹Oozie架構(gòu)與原理關(guān)鍵特性介紹應(yīng)用舉例Oozie概述Oozie是一個Hadoop作業(yè)的工作流調(diào)度管理系統(tǒng)。Oozie工作流(Workflow)是放置在控制依賴DAG(有向無環(huán)圖)中的一組動作(Action)集合,控制依賴可確保后續(xù)操作在前面的操作已成功完成后才會啟動。Oozie的協(xié)調(diào)作業(yè)(Coordinator)是通過時間(頻率)和有效數(shù)據(jù)來觸發(fā)當(dāng)前的Oozie工作流。Oozie支持多種Hadoop作業(yè)(包括:HDFS,MapReduce,Hive,StreamingMR,Loader,Spark,Distcp)以及系統(tǒng)類作業(yè)(例如Java與Shell)。Oozie引擎介紹Oozie支持如下三種引擎:WorkflowEngine

工作流引擎:以Action的方式運行工作流Job,用來執(zhí)行Map/Reduce與Pig等Job。CoordinatorEngine

協(xié)調(diào)員引擎:基于時間和數(shù)據(jù)觸發(fā)器運行工作流(Workflow),它可以定時調(diào)度工作流(例如每隔一小時運行一次),也可以在數(shù)據(jù)可用的時候觸發(fā)工作流(例如等到輸入數(shù)據(jù)準(zhǔn)備好的情況下再啟動工作流)。BundleEngine

管道引擎:提供了更高級別的Oozie抽象,用戶可以批量設(shè)置Coordinator應(yīng)用,并且能夠啟動/停止/暫停/恢復(fù)/重新運行一組Coordinator應(yīng)用,從而提高易用性與靈活性。Oozie引擎介紹BundlesCoordinator1Coordinator2Workflow1Workflow2HiveSparkHDFSJAVA應(yīng)用場景Oozie是一個工作流調(diào)度引擎,對各種類型的Hadoop作業(yè)進行編排與調(diào)度。主要應(yīng)用于以下幾種場景:編排與管理邏輯復(fù)雜的多種類型的Hadoop作業(yè),按照指定的順序協(xié)同運行,例如ETL任務(wù)。基于時間(頻率)觸發(fā)工作流,例如每天/小時執(zhí)行一次的重復(fù)任務(wù)或者指定時間執(zhí)行的任務(wù)?;跀?shù)據(jù)有效性觸發(fā)工作流,當(dāng)依賴的HDFS數(shù)據(jù)產(chǎn)生之后才觸發(fā)下一步動作,可用于數(shù)據(jù)管道處理。實時監(jiān)控與管理集群的工作流,快速定位問題;掌握集群的資源使用情況,并根據(jù)需要調(diào)整工作流的調(diào)度,最大化利用集群資源。Oozie產(chǎn)品定位FusionInsightHD提供大數(shù)據(jù)處理環(huán)境,基于社區(qū)開源軟件增強,按照場景選擇業(yè)界最佳實踐。

Oozie(包括Hue上的Workflow與JobDesign)作為Porter的組件,它是HaDoop作業(yè)管理與調(diào)度系統(tǒng)。HIVEHDFS/HBaseM/RSparkFlum/Loader/Hue/OoziePorterMinerDataFarmHadoopStormSolr系統(tǒng)管理Farmer服務(wù)治理ManagerHadoopAPIPluginAPIOpenAPI/SDK應(yīng)用服務(wù)層REST/SNMP/SyslogDataInformationKnowledgeWisdomYarn/Zookeeper安全管理MPPDBOozie基本介紹Oozie架構(gòu)與原理關(guān)鍵特性介紹應(yīng)用舉例Oozie架構(gòu)Console提供對Oozie流程的查看和監(jiān)控功能。Client通過接口控制workflow流程:可以執(zhí)行提交流程,啟動流程,運行流程,終止流程,恢復(fù)流程等操作。Hue界面上的Workflow與JobDesign就屬于client范疇。SDK軟件開發(fā)工具包SDK(SoftwareDevelopmentKit)是被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。DatabasePG數(shù)據(jù)庫,用于存儲作業(yè)信息。WebApp(Oozie)WebApp(Oozie)即Oozieserver,可以用內(nèi)置的Tomcat容器,也可以用外部的。記錄的信息比如日志等放在PG數(shù)據(jù)庫中。TomcatTomcat服務(wù)器是免費的開放源代碼的Web應(yīng)用服務(wù)器。HaDoop組件底層執(zhí)行Oozie編排流程的各個組件,包括MapReduce、Hive、Spark等。作業(yè)提交流程Hue或其他組件通過Oozie提供的Rest接口來訪問Oozie服務(wù)。Rest請求進入OozieServer后,經(jīng)filter和servlet的識別,DagEngine將輸入轉(zhuǎn)化成MapReduce能識別的數(shù)據(jù),提交給MapReduce執(zhí)行?;驹碓?/p>

Oozie對工作流的編排,是基于workflow.xml文件來完成的。用戶預(yù)先將工作流執(zhí)行規(guī)則定制于workflow.xml文件中,并在perties配置上相關(guān)的參數(shù),然后由OozieServer向MR提交一個Job來啟動工作流。

Map-ReduceActionNode示例<actionname="myfirstHaDoopJob"><map-reduce><job-tracker>foo:9001</job-tracker><name-node>bar:9000</name-node><prepare><deletepath="hdfs://foo:9000/usr/tucu/output-data"/></prepare><job-xml>/myfirstjob.xml</job-xml><configuration><property><name>mapred.input.dir</name><value>/usr/tucu/input-data</value></property><property><name>mapred.output.dir</name><value>/usr/tucu/input-data</value></property><property><name>mapred.reduce.tasks</name><value>${firstJobReducers}</value></property><property>

map-reduce:action類型job-tracker:Mapreducejobtracker地址name-node:HDFSnamenode地址configuration:action需要的參數(shù)ok:標(biāo)注當(dāng)前action執(zhí)行成功后跳轉(zhuǎn)的下個節(jié)點error:標(biāo)注當(dāng)前action執(zhí)行失敗后跳轉(zhuǎn)的下一個節(jié)點接左側(cè)代碼:<name>oozie.action.external.stats.write</name><value>true</value></property></configuration></map-reduce><okto="myNextAction"/><errorto="errorCleanup"/></action>JavaActionNode示例<actionname="myfirstjavajob"><java><job-tracker>foo:9001</job-tracker><name-node>bar:9000</name-node><prepare><deletepath="${jobOutput}"/></prepare><configuration><property><name></name><value>default</value></property></configuration><main-class>org.apache.oozie.MyFirstMainClass</main-class><java-opts>-Dblah</java-opts><arg>argument1</arg><arg>argument2</arg></java><okto="myotherjob"/><errorto="errorcleanup"/></action>java:action類型job-tracker:Mapreducejobtracker地址name-node:HDFSnamenode地址configuration:action需要的參數(shù)main-class:main函數(shù)入口ok:標(biāo)注當(dāng)前action執(zhí)行成功后跳轉(zhuǎn)的下個節(jié)點error:標(biāo)注當(dāng)前action執(zhí)行失敗后跳轉(zhuǎn)的下個節(jié)點HiveActionNode示例<actionname="myfirsthivejob"><hivexmlns="uri:oozie:hive-action:0.2"><job-traker>foo:9001</job-tracker><name-node>bar:9000</name-node><prepare><deletepath="${jobOutput}"/></prepare><configuration><property><name></name><value>default</value></property</configuration><script>myscript.q</script><param>InputDir=/home/tucu/input-data</param>hive:action類型job-tracker:Mapreducejobtracker地址name-node:HDFSnamenode地址configuration:action需要的參數(shù)script:執(zhí)行的sql文件ok:標(biāo)注當(dāng)前action執(zhí)行成功后跳轉(zhuǎn)的下一個節(jié)點error:標(biāo)注當(dāng)前action執(zhí)行失敗后跳轉(zhuǎn)的下個節(jié)點接左側(cè)代碼:<param>OutputDir=${jobOutput}</param></hive><okto="myotherjob"/><errorto="errorcleanup"/></action>流程編排舉例<workflow-appxmlns="uri:oozie:workflow:0.2"name="wf"><startto="first"/><actionname="first"><map-reduce>...</map-reduce><okto="second"/><errorto="fail"/></action><actionname="second"><java>...</java><okto="end"/><errorto="fail"/></action><killname="fail"><message>Map/Reducefailed,errormessage[${wf:errorMessage(wf:lastErrorNode())}]</message></kill><endname="end"/></workflow-app>左側(cè)為流程編排的一個示例。工作流是從start節(jié)點開始的,由start進入first,執(zhí)行map-reduce

action計算,執(zhí)行成功則進入second,失敗則進入kill節(jié)點,fail并打印錯誤信息。Second執(zhí)行成功后,進入end節(jié)點,表示流程結(jié)束。Oozie使用HPDL來構(gòu)造工作流,只有當(dāng)上一個節(jié)點執(zhí)行完成,才會進入下一個節(jié)點。所有“ActionNodes”均以有向無環(huán)圖(DAGDirectAcyclicGraph)的模式部署,不存在閉環(huán)流程。Oozie基本介紹Oozie架構(gòu)與原理關(guān)鍵特性介紹應(yīng)用舉例通過可視化界面對如下幾種作業(yè)類型進行拖拽式工作流編排:Hive、Spark、Java、Loader、MapReduce、Shell、Ssh、HDFS、Distcp、Streaming-MR。工作流編排通過可視化界面對如下幾種作業(yè)類型進行作業(yè)設(shè)計:MapReduce,Java,Streaming-MR,HDFS,SSH,Shell,Distcp。作業(yè)設(shè)計Coordinator調(diào)度工作流,可指定時間范圍,調(diào)用頻率;Bundles可以批量管理一組Coordinator。工作流調(diào)度監(jiān)控作業(yè)的執(zhí)行狀態(tài),查看運行日志,作業(yè)配置等。作業(yè)監(jiān)控按照不同的項目對保存的工作流或作業(yè)設(shè)計進行分類;并且可以共享給其他用戶。項目分類與共享Oozie其他特性說明訪問方式多樣化提供可視化作業(yè)管理的同時Oozie也提供Rest接口與Shell接口,方便與第三方對接。查看Oozie配置提供可視化界面查看Oozie配置。操作方式多樣化對作業(yè),工作流、定時調(diào)度,批量調(diào)度的啟動,暫停,停止,恢復(fù),查看等操作,提高易用性與靈活性。Oozie增強特性安全增強支持Oozie權(quán)限管理,提供管理員與普通用戶兩種角色。支持單點登錄登出,HTTPS方式訪問以及審計日志??煽啃栽鰪娭С諳ozieHA??删S護性增強支持告警,日志壓縮,健康檢查。Oozie基本介紹Oozie架構(gòu)與原理關(guān)鍵特性介紹應(yīng)用舉例命令行提交作業(yè)需要先下載FusionInsight的客戶端,并且先將工作流需要的文件(例如Workflow.xml,perties,以及依賴的jar包等)上傳至HDFS指定目錄,同時每次本地配置項發(fā)生更新時,需要同步更新HDFS上的文件。命令行示例:hdfsdfs-mkdir/user/admin//在HDFS上創(chuàng)建用戶工作目錄hdfsdfs-put-f/opt/client/Oozie/oozie-client-4.2.0/examples/user/admin///上傳工作流需要的配置文件與jar包到工作目錄hdfsdfs-put-f/opt/client/Oozie/oozie-client-4.2.0/share/lib/user/oozie/share///上傳公共jar包ooziejob-oozie-configperties–run//提交工作流Hue(UI)提交作業(yè)

在Hue上的Workflow編輯器中編輯工作流,點擊提交按鈕即可。應(yīng)用舉例

例如,有這樣一個需求,某個業(yè)務(wù)系統(tǒng)每天產(chǎn)生20G的原始數(shù)據(jù),我們每天都要對其進行處理,處理步驟如下:先將原始數(shù)據(jù)同步到HDFS上(Loader

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論