【发布时间】:2014-12-22 00:47:15
【问题描述】:
我正在尝试运行 wordcount map-reduce 示例,引用 https://support.pivotal.io/hc/en-us/articles/203355837-How-to-run-a-Map-Reduce-jar-using-Oozie-workflow。
我在集群设置中使用 hadoop 2.2.0
问题是我的 oozie map-reduce 作业一直在运行。它没有给出任何错误,但它没有成功完成。没有错误消息。也没有创建输出目录(这是假设发生的)。
下面是workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.1" name="map-reduce-wf">
<start to="mr-node"/>
<action name="mr-node">
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path="${nameNode}/user/hadoop/${examplesRoot}/output-data/${outputDir}"/>
</prepare>
<configuration>
<property>
<name>mapred.mapper.new-api</name>
<value>true</value>
</property>
<property>
<name>mapred.reducer.new-api</name>
<value>true</value>
</property>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
<property>
<name>mapreduce.map.class</name>
<value>org.apache.hadoop.examples.WordCount$TokenizerMapper</value>
</property>
<property>
<name>mapreduce.reduce.class</name>
<value>org.apache.hadoop.examples.WordCount$IntSumReducer</value>
</property>
<property>
<name>mapreduce.combine.class</name>
<value>org.apache.hadoop.examples.WordCount$IntSumReducer</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>/user/hadoop/${examplesRoot}/input-data/text</value>
</property>
<property>
<name>mapred.output.dir</name>
<value>/user/hadoop/${examplesRoot}/output-data/${outputDir}</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>
工作属性
nameNode=hdfs://hadoopmaster:54310
jobTracker=localhost:54311
queueName=default
examplesRoot=examplesoozie
oozie.wf.application.path=${nameNode}/user/hadoop/${examplesRoot}/map-reduce
outputDir=map-reduce
作业状态的输出是
Workflow Name : map-reduce-wf
App Path : hdfs://hadoopmaster:54310/user/hadoop/examplesoozie/map-reduce
Status : RUNNING
Run : 0
User : hadoopuser
Group : -
Created : 2014-10-26 19:52 GMT
Started : 2014-10-26 19:52 GMT
Last Modified : 2014-10-26 19:52 GMT
Ended : -
CoordAction ID: -
Actions
------------------------------------------------------------------------------------------------------------------------------------
ID Status Ext ID Ext Status Err Code
------------------------------------------------------------------------------------------------------------------------------------
0000006-141026135258981-oozie-hado-W@:start: OK - OK -
------------------------------------------------------------------------------------------------------------------------------------
0000006-141026135258981-oozie-hado-W@mr-node PREP - - -
------------------------------------------------------------------------------------------------------------------------------------
任何帮助将不胜感激。
【问题讨论】:
-
我看不到您在 workflow.xml 中定义的 mapreduce jar。你能检查一下你是否错过了 jar 命令吗?
-
我的意思是你的 jar 在 lib 文件夹中吗?它的类名与 workflow.xml 中的类名相同
-
@KSNidhin:是的,我已将 jar 包含在 map-reduce 文件夹内的 lib 文件夹中,并且类名与定义的相同。