配置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>