定時啟動作業(yè)的方式可以使用oozie的coord來完成,項目工程結構如下碰辅,其中swda-wf下的coordinator.xml是定時作業(yè)的實現(xiàn)粟誓。
Paste_Image.png
1枷邪,coordinator.xml文件
其中只能包括workflow action,需要在同級目錄中存在workflow.xml文件,可是實現(xiàn)動態(tài)參數的傳遞(由oozie平臺提供動態(tài)參數)抖部。
定時執(zhí)行需要根據四個參數來決定<start,end,frequency,timezone>
start:設置job的開始執(zhí)行時間说贝,一般設置為當前時間,如果是以前的時間慎颗,會起一些臟批次狂丝。
end:job的結束時間
frequency:job執(zhí)行的周期,coord有一些好用的el表達式
timezone:時區(qū)哗总,oozie默認是utc几颜,需要調整到東8區(qū)
<?xml version="1.0" encoding="UTF-8"?>
<coordinator-app name="w_coord" frequency="${coord:minutes(60)}" start="${start}" end="${end}" timezone="Asia/Shanghai" xmlns="uri:oozie:coordinator:0.2">
<action>
<workflow>
<app-path>${workflowAppUri}</app-path>
<configuration>
<property>
<name>jobTracker</name>
<value>${jobTracker}</value>
</property>
<!-- <property>
<name>etlDate</name>
<value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, 'DAY'), 'yyyy-MM-dd')}</value>
</property> -->
<property>
<name>etlDate</name>
<value>${coord:formatTime(coord:nominalTime(), 'yyyy-MM-dd')}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>
正確起批后,可以在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