我想为历史日期运行 oozie 协调器,并将日期作为参数传递给工作流中的脚本。我怎么做?
我可以将开始日期设置为旧日期吗?它会赶上吗?以及我应该添加什么频率。
我想为历史日期运行 oozie 协调器,并将日期作为参数传递给工作流中的脚本。我怎么做?
我可以将开始日期设置为旧日期吗?它会赶上吗?以及我应该添加什么频率。
是的,当您提交一个过去开始日期的协调员时,它会赶上。它立即开始执行,因此设置 concurrency=1 可以使您的集群免于繁重的负载。如果要先处理新文件,还可以设置 execution=LIFO。有关更多信息,请查看http://oozie.apache.org/docs/3.3.2/CoordinatorFunctionalSpec.html
我正在从如何使用 oozie 安排 sqoop 操作的答案中发布修改后的示例
创建 coordinator.xml 文件:
<coordinator-app name="sample-coord" xmlns="uri:oozie:coordinator:0.2"
frequency="${coord:days(7)}"
start="${start}"
end= "${end}"
timezone="America/New_York">
<controls>
<timeout>${timeout}</timeout>
<concurrency>1</concurrency>
</controls>
<datasets>
<dataset name="data"
frequency="${coord:days(7)}"
initial-instance="${start}" timezone="America/New_York">
<uri-template>${data_path}/${YEAR}/${MONTH}/${DAY}</uri-template>
<done-flag/>
</dataset>
</datasets>
<input-events>
<data-in name="data_in" dataset="data">
<instance>${coord:current(0)}</instance>
</data-in>
</input-events>
<action>
<workflow>
<app-path>${wf_application_path}</app-path>
<configuration>
<property>
<name>input</name>
<value>${coord:dataIn('data_in')}</value>
</property>
</configuration>
</workflow>
</action>
</coordinator-app>
在 coordinator.properties 中指定上述文件中使用的所有属性:
host=namenode01
nameNode=hdfs://${host}:8020
wf_application_path=${nameNode}/oozie/deployments/example
oozie.coord.application.path=${wf_application_path}
data_path=${nameNode}/data
start=2013-08-01T01:00Z
end=2013-08-19T23:59Z
timeout=10
将您的 coordinator.xml 文件上传到 hdfs,然后使用类似的东西提交您的协调员作业
oozie job -config coordinator.properties -run