【问题标题】:Oozie map-reduce job stuck in PREP state foreverOozie map-reduce 作业永远停留在 PREP 状态
【发布时间】: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 文件夹中,并且类名与定义的相同。

标签: hadoop mapreduce oozie


【解决方案1】:

在 job.properties 中,initialDataset 应该在 jobStart 之前 8 小时(PST 是 GMT-8)。您已经为两者设置了 2014-10-26 19:52 GMT。

【讨论】:

  • 您好 Ramanan,我们尚未设置任何协调工作。我们只是在运行简单的 oozie-hive 工作。那么我们是否还必须为工作流设置 jobStart 和 jobEnd?
  • 我们已经在 oozie.processing.timezone 中设置了时区,但仍然无法正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-03
相关资源
最近更新 更多