在Hadoop中调度和协调oozie工作流程
时间:2020-02-23 14:33:37 来源:igfitidea点击:
创建了一组工作流后,我们可以在执行时使用一系列Oozie协调器作业来计划。
我们有两个调度选项,用于执行:特定时间和数据的可用性与某个时间结合。
oozie协调员工作的基于时间的计划
Oozie协调器作业可以安排在某个时间执行,但在它们启动后,它们可以配置为以指定的间隔运行。
以下示例显示了在指定的开始时间和日期开始运行的协调器作业:
<coordinator-app name="sampleCoordinator"
frequency="${coord:days(1)}"
start="2014-06-01T00:01Z "
end="2014-06-01T01:00Z "
timezone="UTC"
xmlns="uri:oozie:coordinator:0.1">
<controls>...</controls>
<action>
<workflow>
<app-path>${workflowAppPath}</app-path>
</workflow>
</action>
</coordinator-app>
基于时间和数据可用性的Oozie协调作业的计划
如果指定的数据文件或者目录可用,也可以安排Oozie协调器作业在某个时间执行。
以下列表显示了在指定的开始时间和日期开始运行的协调器的示例,如果由TriggerDataseTdir识别的数据集存在,并且运行直到指定的结束时间:
<coordinator-app name="sampleCoordinator"
frequency="${coord:days(1)}"
start="${startTime}"
end="${endTime}"
timezone="${timeZoneDef}"
xmlns="uri:oozie:coordinator:0.1">
<controls>...</controls>
<datasets>
<dataset name="input" frequency="${coord:days(1)}" initial-instance="${startTime}" timezone="${timeZoneDef}">
<uri-template>${triggerDatasetDir}</uri-template>
</dataset>
</datasets>
<input-events>
<data-in name="sampleInput" dataset="input">
<instance>${startTime}</instance>
</data-in>
</input-events>
<action>
<workflow>
<app-path>${workflowAppPath}</app-path>
</workflow>
</action>
</coordinator-app>
运行Oozie协调员工作
类似于Oozie工作流作业,协调器作业需要Job.properties文件,并且需要在HDFS中加载coordinator.xml文件。
要从Oozie命令行界面运行Oozie协调器作业,请在确保作业的情况下发出以下命令,同时确保作业.properties文件是本地可访问的:
$oozie job config sampleCoordinator/job.properties run
提交作业后,协调器存储在Oozie对象数据库中。
在提交时,Oozie返回一个标识符,以使我们能够监控和管理协调员 - Job:0000001-00000001234567-Oozie-C。
要检查此作业的状态,请运行命令
oozie job -info 0000001-00000001234567-oozie-C

