oozie分为bundle,coordinator,workflow三种方式,这里主要介绍下coordinator和workflow
查看coordinator运行状态
oozie job -oozie http://abc.com/oozie/ -info 0015847-150916101131329-oozie-C@1
如果一个coordinator有多个依赖,并且都没有执行,那么-info只会返回第一个依赖,也就是该coordinator没执行的原因可能并不是由一个依赖没执行完导致的,需要反复check
挂起某个workflow任务
oozie job -oozie http://abc.com/oozie/ -suspend 0000045-160304180859088-oozie-W
恢复某个挂起的workflow任务
oozie job -oozie http://abc.com/oozie/ -resume 0000045-160304180859088-oozie-W
重新run一个coordinator中的某个任务
可以有多种方法指定重跑的任务,这里介绍两个,一个是按照action id来重跑,一个是按时间的range来重跑
按照action id 重跑
oozie job -oozie http://abc.com/oozie/ -config job.properties -rerun 0043299-150916101131329-oozie-C -action 1
通过-config指定oozie的properties(一般是固定的,就是提交oozie代码的时候设定的config目录),-action后面指定action id
还可以同时指定多个action id在一次请求中:
oozie job -oozie http://abc.com/oozie -config job.properties -rerun 0000161-160506030003242-oozie-C -action 1,2,3
如果coordinator有依赖job的话,通常上面两种rerun方法都不能刷新依赖的状态,如果某个coordinator有一个依赖条件是某个hive db partition,假设本来这个partition存在,在rerun之前把partition删除了,那么rerun还是能继续执行,并不会理会这个依赖条件其实已经不满足了,这样最终会导致运算出错,所以oozie rerun里有一个参数是“-refresh”,保证rerun的时候重新去检查一下依赖条件的状态,看看是否能满足执行的条件,如:
oozie job -oozie http://abc.com/oozie -config job.properties -rerun 0000161-160506030003242-oozie-C -refresh -action 1,2,3
按照时间的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
通过“-date”来指定时间的range,注意时间的格式是“xxxx-xx-xxTxx:xx+0800::xxxx-xx-xx”,“T”不能少,“0800”指定的是市区,中国处于东八区,所以是0800,两个时间之间用“::”符号连接,这里详细说明下时间范围的含义:
假设job是每天13点开始跑,那么:
- 2016-02-20T00:10+0800::2016-02-21T14:00+0800 => 会运行20,21号的任务,因为end time 超过了21号13:00
- 2016-02-20T00:10+0800::2016-02-21T10:00+0800 => 只会运行20号的任务,因为end time 没有超过了21号13:00
总之,就是取一个闭区间,执行这个区间内所有本该运行的任务:
[Begin_time, End_time]
网友评论