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指令檢視相關内容,指令如下所示:
若成功建立,會生成如下圖所示内容:
若未出現相應内容,請檢查相關資訊是否配置正确即可。
啟動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,如下圖所示:
注:圖中我将指令封裝在shell腳本當中。這裡在建立工作流時,同樣建議動态開啟oozie的運作日志,便于檢視異常資訊。
若是需要kill任務,可以使用以下指令:
其job dag如下圖所示:
在送出作業後,我們可以通過浏覽oozie的web監控界面觀察相關資訊,如下圖所示:
在将oozie內建到hadoop平台時,會有點繁瑣,出現的異常都會在日志中有詳細的記錄,我們可以根據這些記錄去解決出現的異常。另外,我
們在送出任務成功後,在oozie執行期間若是出現異常,我們也可以通過oozie的監控界面去非常友善的檢視對應的異常資訊,并排除。異常資訊較多,需
要我們耐心的閱讀相關記錄資訊。
這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行讨論或發送郵件給我,我會盡我所能為您解答,與君共勉!