Oozie的架構(gòu)由以下幾個(gè)主要組件構(gòu)成:
Oozie客戶端:用于與Oozie服務(wù)器進(jìn)行交互,包括提交工作流、協(xié)調(diào)器和Bundle作業(yè),監(jiān)視作業(yè)狀態(tài)等功能。
Oozie服務(wù)器:負(fù)責(zé)接收和處理客戶端提交的工作流、協(xié)調(diào)器和Bundle作業(yè),調(diào)度作業(yè)執(zhí)行,監(jiān)控作業(yè)狀態(tài)等核心功能。
作業(yè)執(zhí)行引擎:負(fù)責(zé)執(zhí)行提交的作業(yè),包括執(zhí)行工作流中定義的操作節(jié)點(diǎn)、觸發(fā)協(xié)調(diào)器中的動(dòng)作節(jié)點(diǎn)等。
數(shù)據(jù)存儲(chǔ):Oozie使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)作業(yè)元數(shù)據(jù)、作業(yè)狀態(tài)、執(zhí)行日志等信息,通常使用關(guān)系型數(shù)據(jù)庫(kù)如MySQL等。
調(diào)度器:負(fù)責(zé)根據(jù)作業(yè)定義的調(diào)度規(guī)則調(diào)度作業(yè)執(zhí)行,可以基于時(shí)間、事件等條件來(lái)觸發(fā)作業(yè)執(zhí)行。
總體來(lái)說(shuō),Oozie的架構(gòu)是一個(gè)典型的客戶端-服務(wù)器架構(gòu),客戶端提交作業(yè)給Oozie服務(wù)器進(jìn)行處理和執(zhí)行,各個(gè)組件協(xié)同工作實(shí)現(xiàn)作業(yè)的調(diào)度和執(zhí)行。