0
votes

I installed OOZIE and can run it, but I have got another problem with OOZIE and my project: The Java code works properly, but when I try to implement this in Oozie then it does not work any more. Something is wrong with my map Phase output specification in Oozie but I do not know what.

My jar file (name wordcount1.jar) consists of:
--JoinMapper$MovieMapper
--JoinMapper$FigureMapper
--JoinReducer

Here is my error log:
2016-03-09 01:24:30,441 INFO CallbackServlet:539 - USER[-] GROUP[-] TOKEN[-] APP[-] JOB[0000017-160308222246102-oozie-oozi-W] ACTION[0000017-160308222246102-oozie-oozi-W@wordcount1] callback for action [0000017-160308222246102-oozie-oozi-W@wordcount1]
2016-03-09 01:24:30,812 INFO MapReduceActionExecutor:539 - USER[training] GROUP[-] TOKEN[] APP[example-workflow] JOB[0000017-160308222246102-oozie-oozi-W] ACTION[0000017-160308222246102-oozie-oozi-W@wordcount1] action completed, external ID [job_201603082221_0037]
2016-03-09 01:24:30,912 WARN MapReduceActionExecutor:542 - USER[training] GROUP[-] TOKEN[] APP[example-workflow] JOB[0000017-160308222246102-oozie-oozi-W] ACTION[0000017-160308222246102-oozie-oozi-W@wordcount1] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.MapReduceMain], main() threw exception, null
2016-03-09 01:24:31,120 INFO ActionEndXCommand:539 - USER[training] GROUP[-] TOKEN[] APP[example-workflow] JOB[0000017-160308222246102-oozie-oozi-W] ACTION[0000017-160308222246102-oozie-oozi-W@wordcount1] ERROR is considered as FAILED for SLA
2016-03-09 01:24:31,250 INFO ActionStartXCommand:539 - USER[training] GROUP[-] TOKEN[] APP[example-workflow] JOB[0000017-160308222246102-oozie-oozi-W] ..

I have got the following job.properties file:

nameNode=hdfs://localhost:8020
jobTracker=localhost:8021
queueName=default
examplesRoot=joinoozie
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/training/${examplesRoot}
inputDir1=movies1
inputDir2=figures1

My workflow.xml file is as follows:
<workflow-app name="example-workflow" xmlns="uri:oozie:workflow:0.4"> <start to="wordcount1" /> <!-- WordCount MapReduce job --> <action name="wordcount1"> <map-reduce> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <prepare>
</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.inputformat.class</name> <value>org.apache.hadoop.mapreduce.lib.input.DelegatingInputFormat</value> </property> <property> <name>mapreduce.map.class</name> <value>org.apache.hadoop.mapreduce.lib.input.DelegatingMapper</value> </property> <property> <name>mapreduce.input.multipleinputs.dir.formats</name> <value>${inputDir1};org.apache.hadoop.mapred.TextInputFormat,${inputDir2};org.apache.hadoop.mapred.TextInputFormat</value> </property>
<property> <name>mapreduce.input.multipleinputs.dir.mappers</name> <value>${inputDir1};JoinMapper$MovieMapper,${inputDir2};JoinMapper$FigureMapper</value> </property>
<property> <name>mapreduce.reduce.class</name> <value>JoinReducer</value> </property>
<property> <name>mapred.output.dir</name> <value>output_oozie</value> </property> </configuration> </map-reduce>
<ok to="end" /> <error to='end'/> </action> <end name="end" /> </workflow-app>

Could somebody please help me with this issue? Would be great..
Thanks, Andi

1
I found a hint that "The actionConf needs to be copied over with WF Job default configs." - Does anybody know where the actionConf needs to be stored?Andi Maier

1 Answers

0
votes

Oozie provides a default set of properties corresponding to different action types in the workflow. You can read more about the locations and the order in which the properties are set here