Ooize コーディネーターを作成しようとしています。問題は、oozie を使用して処理を待機しているステージング データが既にあることです。
そんな状況を想像してみてください。
現在の日付: 01.03.2013 (2013 年 3 月 1 日)
私はこれらの入力カタログを持っています:
/staging/landing/source/xvlr/2013/02/01/00 (2013 年 2 月初旬、1 日の最初の 1 時間) /staging/landing/source/xvlr/2013/02/01/01
/ステージング/着陸/ソース/xvlr/2013/02/01/02
/ステージング/着陸/ソース/xvlr/2013/02/01/03
/ステージング/着陸/ソース/xvlr/2013/02/01/04
....
/ステージング/着陸/ソース/xvlr/2013/02/28/00
...
/ステージング/着陸/ソース/xvlr/2013/02/28/23
Oozie コーディネーターが、以前に作成されたすべての着陸データを消費し、次のような出力を生成するようにします。
/masterdata/source/xvlr/2013/02/01/00
/masterdata/source/xvlr/2013/02/01/01
/masterdata/source/xvlr/2013/02/01/02
/masterdata/source/xvlr/2013/02/01/03
/masterdata/source/xvlr/2013/02/01/04
....
/masterdata/source/xvlr/2013/02/28/00
...
/masterdata/source/xvlr/2013/02/28/23
次に、コーディネーターを 1 時間ごとに実行して、マスターデータの新しい出力を生成します。
コーディネーター仕様を使用してどのように行うことができますか? こちらが私のコーディネーターです。それは何もしません。必要な時間に到達してから待機します。それは仕事を始めません。
ご意見をお聞かせください。
<coordinator-app name="Xvlr-parser-coordinator" frequency="60"
start="2013-03-07T05:35Z" end="2113-01-01T00:35Z" timezone="Europe/Moscow" xmlns="uri:oozie:coordinator:0.3">
<controls>
<timeout>5</timeout>
<concurrency>4</concurrency>
</controls>
<datasets>
<dataset name="xvlrInputDataset" frequency="${coord:hours(1)}" initial-instance="2013-03-07T05:35Z" timezone="Europe/Moscow">
<uri-template>${nameNode}/staging/landing/source/xvlr/${YEAR}/${MONTH}/${DAY}/${HOUR}</uri-template>
<done-flag></done-flag>
</dataset>
<dataset name="xvlrOutputDataset" frequency="${coord:hours(1)}" initial-instance="2013-03-07T05:35Z" timezone="Europe/Moscow">
<uri-template>${nameNode}/masterdata/source/xvlr/archive/${YEAR}/${MONTH}/${DAY}/${HOUR}</uri-template>
<done-flag></done-flag>
</dataset>
</datasets>
<input-events>
<data-in name="xvlrInputEvent" dataset="xvlrInputDataset">
<instance>${coord:current(0)}</instance>
</data-in>
</input-events>
<output-events>
<data-out name="xvlrOutputEvent" dataset="xvlrOutputDataset">
<instance>${coord:current(0)}</instance>
</data-out>
</output-events>
<action>
<workflow>
<app-path>${oozieAppHomeCatalog}/sub-workflows/Xvlr-parser-subworkflow.xml</app-path>
<configuration>
<property>
<name>inputDir</name>
<value>${coord:dataIn('xvlrInputEvent')}</value>
</property>
<property>
<name>outputDir</name>
<value>${coord:dataOut('xvlrOutputEvent')}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>