我尝试了几天来与Oozie一起开始wordount(MapReduce)工作。使用正常(CMD:"hadoop jar *.jar mainClass 输入输出")作业启动,一切都很好。目前的配置是:
- /
- ApplicationDIR/lib/WordCount.jar /
- 应用程序目录/工作流.xml
- /文本输入
/文本输出
工作流程.xml
<action name='wordcount'> <map-reduce> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <prepare> <delete path="${outputDir}" /> </prepare> <configuration> <property> <name>mapred.job.queue.name</name> <value>${queueName}</value> </property> <property> <name>mapred.mapper.class</name> <value>HadoopJobs.wordCound.WordCountMR.Map</value> </property> <property> <name>mapred.reducer.class</name> <value>HadoopJobs.wordCound.WordCountMR.Reduce</value> </property> <property> <name>mapreduce.input.fileinputformat.inputdir</name> <value>${inputDir}</value> </property> <property> <name>mapreduce.output.fileoutputformat.outputdir</name> <value>${outputDir}</value> </property> </configuration> </map-reduce> <ok to='end'/> <error to='kill'/> </action> <kill name='kill'> <message>ERROR: [${wf:errorMessage(wf:lastErrorNode())}]</message> </kill> <end name='end'/>
作业属性
nameNode=hdfs://192.168.1.110:8020
jobTracker=192.168.1.110:8050
queueName=default
oozie.wf.application.path=${nameNode}/tmp/testDIR/wordcount-example/ApplicationDIR
inputDir=hdfs://192.168.1.110:8020/tmp/testDIR/wordcount-example/Text-IN
outputDir=hdfs://192.168.1.110:8020/tmp/testDIR/wordcount-example/Text-OUT
命令:
oozie job -oozie http://192.168.1.110:11000/oozie/ -config job.properties -run
结果:
约伯被杀
--更新--
Oozie 日志: https://docs.google.com/document/d/1BKnv4dSEscRqpzKLhOjUaryveSP3q0454uL_5_xVPdk/edit?usp=sharing
我通过下载Cloudera CDH来解决这个问题。他们有 HUE ,它有一个非常好的用户界面,在那里我可以详细查看我的错误。总的来说,当我从工作流xml中删除以下部分时,我解决了我的错误:
<property>
<name>mapred.mapper.class</name>
<value>HadoopJobs.wordCound.WordCountMR.Map</value>
</property>
<property>
<name>mapred.reducer.class</name>
<value>HadoopJobs.wordCound.WordCountMR.Reduce</value>
</property>