Oozie协调员与异步数据集

时间:2015-01-25 13:22:10

标签: oozie oozie-coordinator

我们希望根据数据可用性安排工作流程,但没有特定的数据到达频率。此外,可能会有多次重新运行数据,因此可以随时到达当天的多个数据版本。

据我从规范中了解,目前在协调员中指定频率参数是必须的。

但是,我们希望仅基于某些事件(数据到达或分区创建)触发我们的工作流程,而不依赖于频率。

似乎这符合异步数据集的要求。 Oozie是否支持异步数据集?

1 个答案:

答案 0 :(得分:0)

频率参数是必需的,但您可以指定输入事件,如下所示:

<datasets>
    <dataset name="mydata" frequency="${coord:days(1)}" initial-instance="${initial_instance}" timezone="UTC">
        <uri-template>${hcat_uri}/${hcatDatabase}/${hcatTable}/dt=${YEAR}${MONTH}${DAY}</uri-template>
    </dataset>
</datasets>
<input-events>
    <data-in name="MYDATA_IN" dataset="mydata">
        <instance>${coord:current(0)}</instance>
    </data-in>
</input-events>

https://oozie.apache.org/docs/3.1.3-incubating/CoordinatorFunctionalSpec.html#a6.1.4._Input_Events

因此,定义一个相对较低的频率和一个有意义的单位,它将等待数据的可用性。可能有必要为协调器指定超时,其频率低于频率:

<timeout>[TIME_PERIOD]</timeout>

或者你可以直接协调(开始)你的工作流程(没有协调员),例如:一个cronjob,但这根本不好。