我花了一天的时间来寻找为什么我的协调员没有按预期工作,但仍然没有得到任何线索。
我想有两个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
请告诉我我做错了什么或错过了什么。
谢谢
1条答案
按热度按时间ercv8c1e1#
您已将频率设置为
frequency="${coord:days(1)}"
,这意味着您的oozie协调器只需要在00时触发作业一次,这就是为什么它总是寻找一天的开始时间,即00
从您的初始示例数小时。使用小时数功能指示协调员每小时检查一次。
另外,初始示例设置为
initial-instance="2015-01-01T00:00Z"
频率是1天,所以会增加1天,但小时数是一样的00:00Z
. 更改此时间以选择特定的时间。