hadoop—oozie coordinator中数据集的延迟

sdnqo3pr  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(338)

正在寻找一个基于配置单元分区中的数据集的可用性运行的作业。我已经让这个工作,但现在我希望它运行,使我所有的饲料运行在名义上的时间,但一个将始终运行在一天延迟。因此,如果今天是5-19,所有的饲料需要在那里为5-19除了一个,我们将要为5-18。
这就是我目前拥有的:

<dataset name="mvHost" frequency="${coord:days(1)}" initial-instance="${jobStart}" timezone="America/New_York">
        <uri-template>${nameNode}/apps/hive/warehouse/uat_db.db/mv_host/create_date=${YEAR}${MONTH}${DAY}</uri-template>
        <done-flag></done-flag>
    </dataset>
    <!-- ensure MV_INTERFACE exists on partition date, need to delay by ONE day -->
    <dataset name="mvInterface" frequency="${coord:days(1)}" initial-instance="${jobStart}" timezone="America/New_York">
        <uri-template>${nameNode}/apps/hive/warehouse/uat_db.db/mv_interface/create_date=${YEAR}${MONTH}${DAY}</uri-template>
        <done-flag></done-flag>
    </dataset>

</datasets>
<input-events>
    <data-in name="input1" dataset="mvHost">
        <instance>${coord:current(0)}</instance>
    </data-in>
    <data-in name="input2" dataset="mvInterface">
        <instance>${coord:current(0)}</instance>
    </data-in>
</input-events>

灌输潜伏期的最佳方法是什么?我已尝试将示例编辑为${coord:current(-24)}但是失败了。我也试过用coord:dateoffset on mv\u接口的初始示例,但协调器永远不会生成。
有什么建议吗?

cu6pst1q

cu6pst1q1#

我想你需要${coord:offset(n,string timeunit)}这里。你用的地方都有${coord:current(n) }但允许您在数据集物化时指定时间偏移(正数和负数)。所以,举个例子:

<datasets>
    <dataset name="mvHost" frequency="${coord:days(1)}" initial-instance="${jobStart}" timezone="America/New_York">
        <uri-template>${nameNode}/apps/hive/warehouse/uat_db.db/mv_host/create_date=${YEAR}${MONTH}${DAY}</uri-template>
        <done-flag></done-flag>
    </dataset>
    <!-- ensure MV_INTERFACE exists on partition date, need to delay by ONE day -->
    <dataset name="mvInterface" frequency="${coord:days(1)}" initial-instance="${jobStart}" timezone="America/New_York">
        <uri-template>${nameNode}/apps/hive/warehouse/uat_db.db/mv_interface/create_date=${YEAR}${MONTH}${DAY}</uri-template>
        <done-flag></done-flag>
    </dataset>
</datasets>

<input-events>
    <data-in name="input1" dataset="mvHost">
        <instance>${coord:current(0)}</instance>
    </data-in>
    <data-in name="input2" dataset="mvInterface">
        <instance>${coord:offset(-1, "DAY")}</instance>
    </data-in>
</input-events>

如果2016-01-01t00:00为协调器物化时间,则数据集“mvhost”物化时间为(同)2016-01-01t00:00,数据集“mvinterface”为2015-12-31t00:00。

相关问题