我花了一天时间找到为什么我的协调员没有按预期工作,仍然没有得到任何线索。
我希望分别运行2个火花工作,第二个工作是第一份工作的家属。我已完成第一份每小时生成_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
请告诉我我做错了什么或我错过了什么。
由于
答案 0 :(得分:0)
您已将频率设置为frequency="${coord:days(1)}"
,这意味着您的oozie协调员只需在00小时触发一次作业,这就是为什么它总是在寻找00
小时的当天开始时间从你的初始实例。
使用hours EL功能
frequency="${coord:hours(1)}"
指示协调员每小时检查一次。
此外,初始实例设置为initial-instance="2015-01-01T00:00Z"
且频率为1天,因此它将增加1天,但小时数将相同00:00Z
。更改此时间以选择特定时间。