oozie分為bundle,coordinator,workflow三種方式,這里主要介紹下coordinator和workflow
查看coordinator運(yùn)行狀態(tài)
oozie job -oozie http://abc.com/oozie/ -info 0015847-150916101131329-oozie-C@1
如果一個(gè)coordinator有多個(gè)依賴,并且都沒(méi)有執(zhí)行,那么-info只會(huì)返回第一個(gè)依賴,也就是該coordinator沒(méi)執(zhí)行的原因可能并不是由一個(gè)依賴沒(méi)執(zhí)行完導(dǎo)致的,需要反復(fù)check
掛起某個(gè)workflow任務(wù)
oozie job -oozie http://abc.com/oozie/ -suspend 0000045-160304180859088-oozie-W
恢復(fù)某個(gè)掛起的workflow任務(wù)
oozie job -oozie http://abc.com/oozie/ -resume 0000045-160304180859088-oozie-W
重新run一個(gè)coordinator中的某個(gè)任務(wù)
可以有多種方法指定重跑的任務(wù),這里介紹兩個(gè),一個(gè)是按照action id來(lái)重跑,一個(gè)是按時(shí)間的range來(lái)重跑
按照action id 重跑
oozie job -oozie http://abc.com/oozie/ -config job.properties -rerun 0043299-150916101131329-oozie-C -action 1
通過(guò)-config指定oozie的properties(一般是固定的,就是提交oozie代碼的時(shí)候設(shè)定的config目錄),-action后面指定action id
還可以同時(shí)指定多個(gè)action id在一次請(qǐng)求中:
oozie job -oozie http://abc.com/oozie -config job.properties -rerun 0000161-160506030003242-oozie-C -action 1,2,3
如果coordinator有依賴job的話,通常上面兩種rerun方法都不能刷新依賴的狀態(tài),如果某個(gè)coordinator有一個(gè)依賴條件是某個(gè)hive db partition,假設(shè)本來(lái)這個(gè)partition存在,在rerun之前把partition刪除了,那么rerun還是能繼續(xù)執(zhí)行,并不會(huì)理會(huì)這個(gè)依賴條件其實(shí)已經(jīng)不滿足了,這樣最終會(huì)導(dǎo)致運(yùn)算出錯(cuò),所以oozie rerun里有一個(gè)參數(shù)是“-refresh”,保證rerun的時(shí)候重新去檢查一下依賴條件的狀態(tài),看看是否能滿足執(zhí)行的條件,如:
oozie job -oozie http://abc.com/oozie -config job.properties -rerun 0000161-160506030003242-oozie-C -refresh -action 1,2,3
按照時(shí)間的range重跑
oozie job -oozie http://abc.com/oozie/ -config job.properties -rerun 0065107-150916101131329-oozie-C -date 2016-02-20T00:10+0800::2016-02-21T14:00+0800
通過(guò)“-date”來(lái)指定時(shí)間的range,注意時(shí)間的格式是“xxxx-xx-xxTxx:xx+0800::xxxx-xx-xx”,“T”不能少,“0800”指定的是市區(qū),中國(guó)處于東八區(qū),所以是0800,兩個(gè)時(shí)間之間用“::”符號(hào)連接,這里詳細(xì)說(shuō)明下時(shí)間范圍的含義:
假設(shè)job是每天13點(diǎn)開(kāi)始跑,那么:
- 2016-02-20T00:10+0800::2016-02-21T14:00+0800 => 會(huì)運(yùn)行20,21號(hào)的任務(wù),因?yàn)閑nd time 超過(guò)了21號(hào)13:00
- 2016-02-20T00:10+0800::2016-02-21T10:00+0800 => 只會(huì)運(yùn)行20號(hào)的任務(wù),因?yàn)閑nd time 沒(méi)有超過(guò)了21號(hào)13:00
總之,就是取一個(gè)閉區(qū)間,執(zhí)行這個(gè)區(qū)間內(nèi)所有本該運(yùn)行的任務(wù):
[Begin_time, End_time]