配置Oozie工作流程
时间:2020-02-23 14:33:26 来源:igfitidea点击:
作为工作流引擎,Oozie使我们可以以称为工作流的指定序列运行一组Hadoop应用程序。
我们可以通过三种方式之一配置Oozie工作流程,具体取决于特定情况。
我们可以使用
config-default.xml文件:定义不会为工作流程进行更改的参数。
Job.properties文件:定义了对工作流的特定部署常见的参数。这里的定义覆盖了Config-default.xml文件中制作的定义。
命令行参数:定义对工作流调用特定的参数。这里的定义覆盖了作业中的那些.properties文件和config-default.xml文件。
配置详细信息会有所不同,具体取决于它们关联的操作。
例如,正如我们在下列列表中的MapReduce操作(Map-Action)中,我们可以其中配置更多东西:
<workflow-app name=" SampleWorkflow " xmlns="uri:oozie:workflow:0.1">
...
<action name="firstJob">
<map-reduce>
@@1 <job-tracker>serverName:8021</job-tracker>
<name-node>serverName:8020</name-node>
@@2 <prepare>
<delete path="hdfs://clientName:8020/usr/sample/output-data"
</prepare>
@@3 <job-xml>jobConfig.xml</job-xml>
<configuration>
...
<property>
<name>mapreduce.map.class</name>
<value>theitroad.oozie.FlightMilesMapper</value>
</property>
<property>
<name>mapreduce.reduce.class</name>
<value>theitroad.oozie.FlightMilesReducer </value>
</property>
<property>
<name>mapred.mapoutput.key.class</name>
<value>org.apache.hadoop.io.Text</value>
</property>
<property>
<name>mapred.mapoutput.value.class</name>
<value>org.apache.hadoop.io.IntWritable</value>
</property>
<property>
<name>mapred.output.key.class</name>
<value>org.apache.hadoop.io.Text</value>
</property>
<property>
<name>mapred.output.value.class</name>
<value>org.apache.hadoop.io.IntWritable</value>
</property>
<property>
<name>mapred.input.dir</name>
<value>'/usr/dirk/flightdata'</value>
</property>
<property>
<name>mapred.output.dir</name>
<value>'/usr/dirk/flightmiles'</value>
</property>
...
</configuration>
</map-reduce>
<ok to="end"
<error to="end"
</action>
...
</workflow-app>
与此处所示的文件系统(FS)操作相反:
<workflow-app name="SampleWorkflow" xmlns="uri:oozie:workflow:0.1">
...
<action name="firstJob">
<fs>
<delete path="hdfs://servername:8020/usr/sample/temp-data"
<mkdir path="archives/${wf:id()}"
<move source="${jobInput}" target="archives/${wf:id()}/processed-input"
<chmod path="${jobOutput}" permissions="-rwxrw-rw-" dir-files="true"><recursive</chmod>
</fs>
<ok to="end"
<error to="end"
</action>
...
</workflow-app>

