天天看點

高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語

oozie簡介

任務工作流

截圖預覽

  下面開始今天的内容分享。

  在oozie中有幾個重要的概念,他們分别是:

workflow:工作流,控制工作流的開始和結束過程,以及工作流job的執行路徑,并提供一種機制來控制工作流執行路徑(比如:decision、fork以及join節點等),其書寫方式如下所示:

coordinator:多個workflow可以組成一個coordinator,可以把前幾個workflow的輸出作為後一個workflow的輸入,當然也可以定義workflow的觸發條件,來做定時觸發,其書寫方式如下所示:

bundle:控制一個或多個coordinator應用,其寫法如下所示:

  下面,我們在hadoop平台下去建立這樣一個工作流,首先,我們需要配置hadoop的core-site.xml檔案,在該檔案中添加以下内容:

core-site.xml

  然後,在去修改oozie的oozie-site.xml檔案,在該檔案中添加如下内容如下:

oozie-site.xml

  在修改完相關檔案後,下面我們去建立oozie的sharelib,其指令如下所示:

  然後使用shareliblist指令檢視相關内容,指令如下所示:

  若成功建立,會生成如下圖所示内容:

高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語

  若未出現相應内容,請檢查相關資訊是否配置正确即可。

啟動oozie服務

  注:在啟動時,這裡建議打開oozie的啟動日志,動态觀察相關日志資訊,也許會出現一些異常資訊,比如:

  這些異常資訊大多是由于我們在前面打包生成war包時,由于缺少相關的依賴jar包導緻的,這裡我們将缺少的jar從hadoop的share目錄下找到對應的jar拷貝到oozie運作war包容器下即可,如:

  這裡,異常都有相應的提示,大家耐心的按照提示解決異常即可,在解決相關異常後,我們就可以去建立相關工作流。

  oozie給我們提供了相關示例讓我去參考配置,下面我們将examples/apps下的檔案上傳到hdfs當中去,這裡我上傳在hdfs的

/oozie目錄下。接下來,我給大家去示範一個定時任務。首先,我們進去到apps目錄下的cron目錄,這是一個定時任務的示例,其中包

含:coordinator.xml、job.properties和workflow.xml三個檔案,這裡我們對其進行配置。

coordinator.xml

 這裡配置的頻率為10分鐘,該屬性可配置其它頻率(如:小時,天等)。

job.properties

  這裡由于使用hadoop2.x的ha特性,在指定namenode時,直接使用hdfs://cluster1,在hadoop2.x後,jobtracker被替換了,這裡将其位址指向resourcemanager.address的位址。

workflow.xml

  工作流使用一個空的job。

  在配置完相關檔案後,我們将workflow.xml和coordinator.xml上傳到指定的hdfs位址(之前上傳examples目錄下的corn目錄下,上傳之前先删除存在的檔案),最後,我們啟動這樣一個工作流,指令如下所示:

  建立成功後,會生成一個jobid,如下圖所示:

高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語

  注:圖中我将指令封裝在shell腳本當中。這裡在建立工作流時,同樣建議動态開啟oozie的運作日志,便于檢視異常資訊。

  若是需要kill任務,可以使用以下指令:

  其job dag如下圖所示:

高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語

  在送出作業後,我們可以通過浏覽oozie的web監控界面觀察相關資訊,如下圖所示:

高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語
高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語
高可用Hadoop平台-Oozie工作流之Hadoop排程1.概述2.Oozie簡介3.任務工作流4.截圖預覽5.總結6.結束語

  在将oozie內建到hadoop平台時,會有點繁瑣,出現的異常都會在日志中有詳細的記錄,我們可以根據這些記錄去解決出現的異常。另外,我

們在送出任務成功後,在oozie執行期間若是出現異常,我們也可以通過oozie的監控界面去非常友善的檢視對應的異常資訊,并排除。異常資訊較多,需

要我們耐心的閱讀相關記錄資訊。

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行讨論或發送郵件給我,我會盡我所能為您解答,與君共勉!