如何使用spark coordinator获得每小时计划的spark作业的特定时间

1hdlvixo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(307)

我花了一天的时间来寻找为什么我的协调员没有按预期工作,但仍然没有得到任何线索。
我想有两个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

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

ercv8c1e

ercv8c1e1#

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

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

指示协调员每小时检查一次。
另外,初始示例设置为 initial-instance="2015-01-01T00:00Z" 频率是1天,所以会增加1天,但小时数是一样的 00:00Z . 更改此时间以选择特定的时间。

相关问题