在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