Oozie Coordinator 中数据集的延迟
Posted
技术标签:
【中文标题】Oozie Coordinator 中数据集的延迟【英文标题】:Latency for Dataset in Oozie Coordinator 【发布时间】:2015-05-19 13:52:06 【问题描述】:希望有一个基于 Hive 分区中数据集的可用性运行的作业。我已经让它工作了,但现在我希望它运行,这样我的所有提要都在标称时间运行,但总是会延迟一天运行。因此,如果今天是 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) 但失败了。另外,我尝试在 MV_INTERFACE 的初始实例上使用 coord:dateOffset ,但协调器永远不会构建。
有什么建议吗?
【问题讨论】:
【参考方案1】:我认为你需要$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。
【讨论】:
以上是关于Oozie Coordinator 中数据集的延迟的主要内容,如果未能解决你的问题,请参考以下文章
Oozie coordinator 作业自定义的配置的一些方法
问题记录CDH版Hue提交Oozie Coordinator调度报500异常