2
我想根據先前日期的控制文件的可用性來運行工作流程。我的目錄中的日期格式是$ {basePath} /YYYYMMdd/00/_Complete.I要檢查我的00內部的_Complete文件。我的作業將每天在前一天的數據上運行。我嘗試了類似問題中提供的選項,但仍然無法正常工作。例如,當我測試當天數據的值低於數值時,它正在工作,但沒有使用(-1)選項。對URI-TEMPLATE格式有任何限制,這意味着我們需要使用固定格式的路徑/ $ {YEAR} $ {$ MONTH} $ {DAY} /完成 請幫忙。如何配置前一天的Oozie協調員數據集
<instance>${coord:current(0)}</instance>
這是我的協調員工作的dryrun輸出。
***coordJob after parsing: ***
<coordinator-app xmlns="uri:oozie:coordinator:0.1" name="my_Scheduler_5f" frequency="1" start="2016-08-17T23:40Z" end="2016-08-19T23:45Z" timezone="America/Los_Angeles" freq_timeunit="DAY" end_of_duration="NONE">
<controls>
<timeout>30</timeout>
</controls>
<input-events>
<data-in name="coordInput_1" dataset="input1">
<dataset name="input1" frequency="1" initial-instance="2016-08-17T00:00Z" timezone="America/Los_Angeles" freq_timeunit="DAY" end_of_duration="NONE">
<uri-template>${nameNode}/myHdfsPath/Finalpath1/${YEAR}${MONTH}${DAY}/00/</uri-template>
<done-flag>_Complete</done-flag>
</dataset>
<instance>${coord:current(-1)}</instance>
</data-in>
<data-in name="coordInput_2" dataset="input2">
<dataset name="input2" frequency="1" initial-instance="2016-08-17T23:00Z" timezone="America/Los_Angeles" freq_timeunit="DAY" end_of_duration="NONE">
<uri-template>${nameNode}/myHdfsPath/Finalpath2/${YEAR}${MONTH}${DAY}/00/</uri-template>
<done-flag>_Complete</done-flag>
</dataset>
<instance>${coord:current(-1)}</instance>
</data-in>
</input-events>
<action>
<workflow>
<app-path>${nameNode}/myHdfsPath/My_POC/wf-app-dir</app-path>
<configuration>
<property>
<name>date</name>
<value>${coord:formatTime(coord:dateOffset(coord:actualTime(),-1,'DAY'), "yyyyMMdd")}</value>
</property>
</workflow>
</action>
</coordinator-app>
***actions for instance***
這方面的進展如何?即使我面臨着類似的問題 – user3560220
我沒有得到任何這種解決方案。所以我通過添加1個更簡單的java操作來檢查輸入數據的可用性,這些輸入檢查給定的輸入數據路徑列表/日期。它不是最好的,但解決了我的用例。 – SurjanSRawat