我正在尝试创建Ooize协调器。问题是我已经有数据等待使用oozie进行处理。Oozie协调员。如何将过去的数据提供给mapreduce工作?
想象一下这样的情况。
当前日期是:2013年3月1日(2013年3月1日)
我确实有这些输入目录:
/分期/着陆/源/ xvlr/2013/02/01/00(2013年2月第一个月,每天的第一个小时) /staging/landing/source/xvlr/2013/02/01/01
/staging/landing/source/xvlr/2013/02/01/02
/分段/降落/源极/ xvlr/2013/02/01/03
/分段/降落/源极/ xvlr/2013/02/1月4日
....
/分期/降落/源极/ xvlr/2013/02/28/00
...
/分段/降落/源极/ xvlr/2013/02 /23分之28
我希望我的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
然后我想我的协调运行每个小时,产生新的输出masterdata。
如何使用协调器规范来实现? 这是我的协调员。它什么也没做。它确实达到我需要的时间,然后等待。它没有开始工作。
请指教。
<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>