Oozie-每天或每小时运行一个工作流

问题描述 投票:1回答:1

我有一个oozie工作流程(hive_insertion.xml),该工作流程执行一个.hive文件,该文件将数据插入表中。Oozie工作流程为:

<workflow-app xmlns = "uri:oozie:workflow:0.4" name = "simple-Workflow">
   <start to = "Insert_into_treatment_costs_table " />

   <action name = "Insert_into_treatment_costs_table">
      <hive xmlns = "uri:oozie:hive-action:0.4">
         <job-tracker> ${jobTracker} </job-tracker>
         <name-node> ${nameNode} </name-node>
         <script>hdfs_path_of_script/treatment_insert.hive’</script>
      </hive>
<!-- what should happen on success--!>      
      <ok to = "end" />
<!-- what should happen on failure--!>  
      <error to = "kill_job" />
   </action>
<!-- this is what happens on failure --!>   
   <kill name = "kill_job">
      <message>Job failed</message>
   </kill>
<!-- this is what happens on success --!>       
   <end name = "end" />

</workflow-app>

这可以从上面也有'hive_insertion.xml'文件的目录中执行。

# sudo -u oozie oozie job –oozie

我在哪里进行更改,以便该工作流在每天结束时执行。

hadoop oozie oozie-coordinator oozie-workflow
1个回答
1
投票

您必须使用Oozie Coordinator来安排oozie工作流程。

要在每天结束时执行,请使用EL功能${coord:endOfDays(1)}

将您的工作流程定义嵌入协调器操作中,

${coord:endOfDays(1)}

注: Oozie协调器也支持<coordinator-app name="daily" frequency="${coord:endOfDays(1)}" start="${start}" end="${end}" timezone="UTC" xmlns="uri:oozie:coordinator:0.1"> <action> <workflow> ... </workflow> </action> </coordinator-app> 。用它来获得更灵活的频率。

© www.soinside.com 2019 - 2024. All rights reserved.