0

我花了一天时间找出为什么我的协调员没有按预期工作,但仍然没有任何线索。

我想让 2 个 spark 作业分别运行,第二个作业取决于第一个作业。_SUCCESS我已经完成了每小时生成文件的第一份工作。问题是当第二份工作找到它的依赖时,它出错了HOUR。它总是00在执行时间而不是小时。

这是第二个作业依赖项的 xml 部分示例

<datasets>
<dataset name="\first_job" frequency="${coord:days(1)}" initial-instance="2015-01-01T00:00Z" timezone="GMT">
  <uri-template>hdfs://nameservice1/user/user/project/first_job/success/${YEAR}${MONTH}${DAY}/${HOUR}</uri-template>
  <done-flag>_SUCCESS</done-flag>
</dataset>

这是一些日志

::CoordActionInputCheck:: Missing deps:hdfs://nameservice1/user/user/project/first_job/success/20171222/00/_SUCCESS 

请告诉我我做错了什么或我错过了什么。

谢谢

4

1 回答 1

0

您已将频率设置为frequency="${coord:days(1)}",这意味着您的 oozie 协调器只需要在 00 小时触发一次作业,这就是为什么它总是寻找一天的开始时间,即00从您的初始实例开始的几个小时。使用小时EL 功能

frequency="${coord:hours(1)}" 

指示协调员每小时检查一次。

此外,初始实例集为 toinitial-instance="2015-01-01T00:00Z"且频率为 1 天,因此它将增加 1 天但小时数将相同00:00Z。更改此时间以选择特定时间。

于 2017-12-23T00:05:53.297 回答