定时启动作业的方式可以使用oozie的coord来完成,项目工程结构如下,其中swda-wf下的coordinator.xml是定时作业的实现。
Paste_Image.png
1,coordinator.xml文件
其中只能包括workflow action,需要在同级目录中存在workflow.xml文件,可是实现动态参数的传递(由oozie平台提供动态参数)。
定时执行需要根据四个参数来决定
start:设置job的开始执行时间,一般设置为当前时间,如果是以前的时间,会起一些脏批次。
end:job的结束时间
frequency:job执行的周期,coord有一些好用的el表达式
timezone:时区,oozie默认是utc,需要调整到东8区
${workflowAppUri}
jobTracker
${jobTracker}
etlDate
${coord:formatTime(coord:nominalTime(), 'yyyy-MM-dd')}
正确起批后,可以在oozie的元数据中查看到,表名为coord_actions.
Paste_Image.png
2,启动命令
和workflow启动命令相同,只是在job.properties中的参数不同,注意加粗的关键字,workflow action的为wf。
oozie.coord.application.path=${nameNode}/user/${user.name}/${sdaRoot}/swda-oozie/swda-wf