<!------------------------------------------> <!--Workflow xml file: workflow.xml --> <!------------------------------------------> <workflow-app name="AirawatSampleCoordJob-Parent" xmlns="uri:oozie:workflow:0.1"> <start to="inputAvailableCheckDecision"/> <decision name="inputAvailableCheckDecision"> <switch> <case to="startTaskFork"> ${inputDirRecordCount gt minRequiredRecordCount} </case> <default to="end"/> </switch> </decision> <fork name="startTaskFork"> <path start="javaMainAction"/> <path start="hiveSubWorkflow"/> </fork> <action name="javaMainAction"> <java> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <prepare> <delete path="${outputDirJavaMain}"/> </prepare> <configuration> <property> <name>mapred.job.queue.name</name> <value>${queueName}</value> </property> </configuration> <main-class>Airawat.Oozie.Samples.LogEventCount</main-class> <arg>${inputDir}</arg> <arg>${outputDirJavaMain}</arg> </java> <ok to="joiningControl-P"/> <error to="sendErrorEmail"/> </action> <action name='hiveSubWorkflow'> <sub-workflow> <app-path>${subWorkflowAppPath}</app-path> <propagate-configuration/> </sub-workflow> <ok to="joiningControl-P" /> <error to="sendErrorEmail" /> </action> <join name="joiningControl-P" to="end"/> <action name="sendErrorEmail"> <email xmlns="uri:oozie:email-action:0.1"> <to>${toEmailAddress}</to> <subject>Status of workflow ${wf:id()}</subject> <body>The workflow ${wf:name()} with id -${wf:id()}, had issues and will be killed; The error logged is: ${wf:errorMessage(wf:lastErrorNode());}</body> </email> <ok to="killJobAction"/> <error to="killJobAction"/> </action> <kill name="killJobAction"> <message>"Killed job due to error: ${wf:errorMessage(wf:lastErrorNode())}"</message> </kill> <end name="end" /> </workflow-app>