I want to pass to a Oozie java action some configuration information needed
to the application.
I have looked at oozie documentation and various pointers I've found.
Seems like there are several methods that could achieve what I need, and
I've tried several of them out but so far no luck yet.
I'd appreciate if anyone has some further suggestions.
I have tried with: 1.) oozie.mapred.child.java.opts, 2.)
oozie.mapred.child.env, 3.) -D
Below I am posting all the information about what I am doing.
(I set properties in the workflow individually even if the code below
contains all the various methods I tried in a single file .)
None of these methods seem to succeed.
Thanks.
=== Java code:
public class TestOozie {
public static void main(String[] args) throws Exception {
final String prop1 = System.getenv("INFO");
final String prop2 = System.getProperty("INFO");
If (prop1 == null && prop2 == null) {
throw new RuntimeException("failed to get value");
}
...
}
}
===
Oozie version:
> oozie version
> Oozie client build version: 3.3.2-mapr
===
<workflow-app xmlns="uri:oozie:workflow:0.2" name="map-reduce-wf">
<start to="TestOozie"/>
<action name="TestOozie">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>oozie.mapred.child.java.opts</name>
<value>INFO=foo1</value>
</property>
<property>
<name>oozie.mapred.child.env</name>
<value>INFO=foo2</value>
</property>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
<property>
<name>INFO</name>
<value>foo3</value>
</property>
</configuration>
<main-class>TestOozie</main-class>
<java-opts>-DINFO=foo4</java-opts>
</java>
<ok to="end"/>
<error to="killWorkflow"/>
</action>
<kill name="killWorkflow">
<message>"Killed job due to error:
${wf:errorMessage(wf:lastErrorNode())}"</message>
</kill>
<end name="end" />
</workflow-app>