<workflow-app xmlns='uri:oozie:workflow:0.1' name='map-reduce-wf'>
<start to='wordcount'/>
<action name='wordcount'>
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.input.dir</name>
<value>${inputDir}</value>
</property>
<property>
<name>mapred.output.dir</name>
<value>${outputDir}</value>
</property>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>${numberofReducers}</value>
</property>
<property>
<name>mapred.reducer.new-api</name>
<value>true</value>
</property>
<property>
<name>mapred.mapper.new-api</name>
<value>true</value>
</property>
</configuration>
</map-reduce>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Map/Reduce failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name='end'/>
</workflow-app>
我正在尝试使用 Oozie 运行 map-reduce 作业。谁能告诉我如何在 workflow.xml 中指定驱动程序? {Oozie 如何知道要运行哪个 Mapper 和 Reducer?}
是否可以在不指定以下属性的情况下完成此操作:
<property>
<name>mapred.mapper.class</name>
<value></value>
</property>
<property>
<name>mapred.reducer.class</name>
<value>org.myorg.WordCount.Reduce</value>
</property>
最佳答案
Oozie 需要被告知要运行哪个 mapper/reducer,否则有什么用?如果您不希望将其包含在实际工作流程中,您可以通过“job-xml”配置将其提交到 xml 文件中。请参阅以下内容:
http://oozie.apache.org/docs/4.0.0/WorkflowFunctionalSpec.html#a4.1_Workflow_Job_Properties_or_Parameters http://oozie.apache.org/docs/4.0.0/WorkflowFunctionalSpec.html#a3.2.2_Map-Reduce_Action
请注意,以后的值会覆盖以前的值。意思是,如果你有 mapred.reducer.class
配置两次,最后一个条目将是最终被使用的条目。
关于hadoop - 在 Oozie 中为 Map-Reduce 作业指定驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854165/