Repository: oozie
Updated Branches:
  refs/heads/master c37738134 -> e311d1947


OOZIE-2209 Oozie jobs to set java.io.tmpdir to ./tmp (kailongs via rohini)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/e311d194
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/e311d194
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/e311d194

Branch: refs/heads/master
Commit: e311d19474001347db77c9eff4475f276165a274
Parents: c377381
Author: Rohini Palaniswamy <[email protected]>
Authored: Fri Apr 17 12:24:52 2015 -0700
Committer: Rohini Palaniswamy <[email protected]>
Committed: Fri Apr 17 12:24:52 2015 -0700

----------------------------------------------------------------------
 .../oozie/action/hadoop/JavaActionExecutor.java |  30 +++-
 .../action/hadoop/TestJavaActionExecutor.java   | 138 ++++++++++++++-----
 release-log.txt                                 |   1 +
 3 files changed, 135 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/e311d194/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java 
b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
index cf22ed6..163956e 100644
--- a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
+++ b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
@@ -98,6 +98,7 @@ public class JavaActionExecutor extends ActionExecutor {
     public static final String HADOOP_MAP_MEMORY_MB = 
"mapreduce.map.memory.mb";
     public static final String HADOOP_CHILD_JAVA_OPTS = 
"mapred.child.java.opts";
     public static final String HADOOP_MAP_JAVA_OPTS = 
"mapreduce.map.java.opts";
+    public static final String HADOOP_REDUCE_JAVA_OPTS = 
"mapreduce.reduce.java.opts";
     public static final String HADOOP_CHILD_JAVA_ENV = "mapred.child.env";
     public static final String HADOOP_MAP_JAVA_ENV = "mapreduce.map.env";
     public static final String YARN_AM_RESOURCE_MB = 
"yarn.app.mapreduce.am.resource.mb";
@@ -114,6 +115,7 @@ public class JavaActionExecutor extends ActionExecutor {
     private static final String FAILED_KILLED = "FAILED/KILLED";
     protected XLog LOG = XLog.getLog(getClass());
     private static final Pattern heapPattern = 
Pattern.compile("-Xmx(([0-9]+)[mMgG])");
+    private static final String JAVA_TMP_DIR_SETTINGS = "-Djava.io.tmpdir=";
     public static final String CONF_HADOOP_YARN_UBER_MODE = 
"oozie.action.launcher." + HADOOP_YARN_UBER_MODE;
     public static final String HADOOP_JOB_CLASSLOADER = 
"mapreduce.job.classloader";
     public static final String HADOOP_USER_CLASSPATH_FIRST = 
"mapreduce.user.classpath.first";
@@ -389,6 +391,31 @@ public class JavaActionExecutor extends ActionExecutor {
         }
     }
 
+    void updateConfForJavaTmpDir(Configuration conf) {
+        String mapOpts = conf.get(HADOOP_MAP_JAVA_OPTS);
+        String reduceOpts = conf.get(HADOOP_REDUCE_JAVA_OPTS);
+        String childOpts = conf.get(HADOOP_CHILD_JAVA_OPTS);
+        String amChildOpts = conf.get(YARN_AM_COMMAND_OPTS);
+        String oozieJavaTmpDirSetting = "-Djava.io.tmpdir=./tmp";
+        if (childOpts == null) {
+            conf.set(HADOOP_CHILD_JAVA_OPTS, oozieJavaTmpDirSetting);
+        } else {
+            conf.set(HADOOP_CHILD_JAVA_OPTS, childOpts + " " + 
oozieJavaTmpDirSetting);
+        }
+
+        if (mapOpts != null && !mapOpts.contains(JAVA_TMP_DIR_SETTINGS)) {
+            conf.set(HADOOP_MAP_JAVA_OPTS, mapOpts + " " + 
oozieJavaTmpDirSetting);
+        }
+
+        if (reduceOpts != null && !reduceOpts.contains(JAVA_TMP_DIR_SETTINGS)) 
{
+            conf.set(HADOOP_REDUCE_JAVA_OPTS, reduceOpts + " " + 
oozieJavaTmpDirSetting);
+        }
+
+        if (amChildOpts != null && 
!amChildOpts.contains(JAVA_TMP_DIR_SETTINGS)) {
+            conf.set(YARN_AM_COMMAND_OPTS, amChildOpts + " " + 
oozieJavaTmpDirSetting);
+        }
+    }
+
     private HashMap<String, List<String>> populateEnvMap(String input) {
         HashMap<String, List<String>> envMaps = new HashMap<String, 
List<String>>();
         String[] envEntries = input.split(",");
@@ -495,6 +522,7 @@ public class JavaActionExecutor extends ActionExecutor {
 
             // set cancel.delegation.token in actionConf that child job 
doesn't cancel delegation token
             
actionConf.setBoolean("mapreduce.job.complete.cancel.delegation.tokens", false);
+            updateConfForJavaTmpDir(actionConf);
             return actionConf;
         }
         catch (IOException ex) {
@@ -918,7 +946,7 @@ public class JavaActionExecutor extends ActionExecutor {
                     updateConfForUberMode(launcherJobConf);
                 }
             }
-
+            updateConfForJavaTmpDir(launcherJobConf);
             injectLauncherTimelineServiceEnabled(launcherJobConf, actionConf);
 
             // properties from action that are needed by the launcher (e.g. 
QUEUE NAME, ACLs)

http://git-wip-us.apache.org/repos/asf/oozie/blob/e311d194/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java 
b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
index f4d055f..c34020b 100644
--- 
a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
+++ 
b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
@@ -1070,8 +1070,8 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         Configuration conf = ae.createLauncherConf(getFileSystem(), context, 
action, actionXmlconf, actionConf);
 
-        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2", 
conf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2", 
conf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2 -Djava.io.tmpdir=./tmp", 
conf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2 -Djava.io.tmpdir=./tmp", 
conf.get("mapreduce.map.java.opts"));
 
         actionXml = "<java>" + "<job-tracker>" + getJobTrackerUri() + 
"</job-tracker>" + "<name-node>"
                 + getNameNodeUri() + "</name-node>" + 
"<job-xml>job.xml</job-xml>" + "<job-xml>job2.xml</job-xml>"
@@ -1095,8 +1095,8 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         conf = ae.createLauncherConf(getFileSystem(), context, action, 
actionXmlconf, actionConf);
 
-        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2", 
conf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2", 
conf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2 -Djava.io.tmpdir=./tmp", 
conf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx200m JAVA-OPT1 JAVA-OPT2 -Djava.io.tmpdir=./tmp", 
conf.get("mapreduce.map.java.opts"));
 
         actionXml = "<java>" + "<job-tracker>" + getJobTrackerUri() + 
"</job-tracker>" + "<name-node>"
                 + getNameNodeUri() + "</name-node>" + 
"<job-xml>job.xml</job-xml>" + "<job-xml>job2.xml</job-xml>"
@@ -1122,8 +1122,8 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         conf = ae.createLauncherConf(getFileSystem(), context, action, 
actionXmlconf, actionConf);
 
-        assertEquals("JAVA-OPT3 JAVA-OPT1 JAVA-OPT2", 
conf.get("mapred.child.java.opts"));
-        assertEquals("JAVA-OPT3 JAVA-OPT1 JAVA-OPT2", 
conf.get("mapreduce.map.java.opts"));
+        assertEquals("JAVA-OPT3 JAVA-OPT1 JAVA-OPT2 -Djava.io.tmpdir=./tmp", 
conf.get("mapred.child.java.opts"));
+        assertEquals("JAVA-OPT3 JAVA-OPT1 JAVA-OPT2 -Djava.io.tmpdir=./tmp", 
conf.get("mapreduce.map.java.opts"));
 
         actionXml = "<java>" + "<job-tracker>" + getJobTrackerUri() + 
"</job-tracker>" + "<name-node>"
                 + getNameNodeUri() + "</name-node>" + 
"<job-xml>job.xml</job-xml>" + "<job-xml>job2.xml</job-xml>"
@@ -1149,8 +1149,8 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         conf = ae.createLauncherConf(getFileSystem(), context, action, 
actionXmlconf, actionConf);
 
-        assertEquals("-Xmx200m JAVA-OPT3 JAVA-OPT1 JAVA-OPT2", 
conf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx200m JAVA-OPT3 JAVA-OPT1 JAVA-OPT2", 
conf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx200m JAVA-OPT3 JAVA-OPT1 JAVA-OPT2 
-Djava.io.tmpdir=./tmp", conf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx200m JAVA-OPT3 JAVA-OPT1 JAVA-OPT2 
-Djava.io.tmpdir=./tmp", conf.get("mapreduce.map.java.opts"));
 
         actionXml = "<java>" + "<job-tracker>" + getJobTrackerUri() + 
"</job-tracker>" + "<name-node>"
                 + getNameNodeUri() + "</name-node>" + 
"<job-xml>job.xml</job-xml>" + "<job-xml>job2.xml</job-xml>"
@@ -1177,8 +1177,8 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         conf = ae.createLauncherConf(getFileSystem(), context, action, 
actionXmlconf, actionConf);
 
-        assertEquals("JAVA-OPT3 JAVA-OPT4 JAVA-OPT1 JAVA-OPT2", 
conf.get("mapred.child.java.opts"));
-        assertEquals("JAVA-OPT3 JAVA-OPT4 JAVA-OPT1 JAVA-OPT2", 
conf.get("mapreduce.map.java.opts"));
+        assertEquals("JAVA-OPT3 JAVA-OPT4 JAVA-OPT1 JAVA-OPT2 
-Djava.io.tmpdir=./tmp", conf.get("mapred.child.java.opts"));
+        assertEquals("JAVA-OPT3 JAVA-OPT4 JAVA-OPT1 JAVA-OPT2 
-Djava.io.tmpdir=./tmp", conf.get("mapreduce.map.java.opts"));
     }
 
     public void testActionLibsPath() throws Exception {
@@ -1719,6 +1719,70 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
         assertEquals("false", conf.get("mapreduce.job.ubertask.enable"));
     }
 
+    public void testUpdateConfForJavaTmpDir() throws Exception {
+
+        //Test UpdateCOnfForJavaTmpDir for launcherConf
+        String actionXml1 = "<java>"
+                        + "<job-tracker>"
+                        + getJobTrackerUri()
+                        + "</job-tracker>"
+                        + "<name-node>"
+                        + getNameNodeUri()
+                        + "</name-node>"
+                        + "<configuration>"
+                        + 
"<property><name>oozie.launcher.yarn.app.mapreduce.am.command-opts</name>"
+                        + "<value>-Xmx1024m -Djava.net.preferIPv4Stack=true 
-Djava.io.tmpdir=./usr</value></property>"
+                        + 
"<property><name>oozie.launcher.mapred.child.java.opts</name>"
+                        + "<value>-Xmx2048m 
-Djava.net.preferIPv4Stack=true</value></property>"
+                        + 
"<property><name>oozie.launcher.mapreduce.reduce.java.opts</name>"
+                        + "<value>-Xmx2560m -XX:NewRatio=8 
-Djava.io.tmpdir=./usr</value></property>"
+                        + "</configuration>" + 
"<main-class>MAIN-CLASS</main-class>" + "</java>";
+        JavaActionExecutor ae = new JavaActionExecutor();
+        WorkflowJobBean wfBean = addRecordToWfJobTable("test1", actionXml1);
+        WorkflowActionBean action = (WorkflowActionBean) 
wfBean.getActions().get(0);
+        action.setType(ae.getType());
+        action.setConf(actionXml1);
+
+        Context context = new Context(wfBean, action);
+        Element actionXmlconf = XmlUtils.parseXml(action.getConf());
+
+        Configuration actionConf = ae.createBaseHadoopConf(context, 
actionXmlconf);
+        Configuration conf = ae.createLauncherConf(getFileSystem(), context, 
action, actionXmlconf, actionConf);
+
+        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true 
-Djava.io.tmpdir=./tmp",
+                conf.get(JavaActionExecutor.HADOOP_CHILD_JAVA_OPTS));
+        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true 
-Djava.io.tmpdir=./tmp",
+                conf.get(JavaActionExecutor.HADOOP_MAP_JAVA_OPTS));
+        assertEquals("-Xmx2560m -XX:NewRatio=8 -Djava.io.tmpdir=./usr", 
conf.get(JavaActionExecutor.HADOOP_REDUCE_JAVA_OPTS));
+        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true 
-Djava.io.tmpdir=./usr -Xmx2048m " +
+                        "-Djava.net.preferIPv4Stack=true -Xmx2560m", 
conf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
+
+        //Test UpdateConfForJavaTmpDIr for actionConf
+        String actionXml = "<java>"
+                        + "<job-tracker>"
+                        + getJobTrackerUri()
+                        + "</job-tracker>"
+                        + "<name-node>"
+                        + getNameNodeUri()
+                        + "</name-node>"
+                        + "<configuration>"
+                        + "<property><name>mapreduce.map.java.opts</name>"
+                        + "<value>-Xmx1024m 
-Djava.io.tmpdir=./usr</value></property>"
+                        + "<property><name>mapreduce.reduce.java.opts</name>"
+                        + "<value>-Xmx2560m -XX:NewRatio=8</value></property>"
+                        + "</configuration>" + 
"<main-class>MAIN-CLASS</main-class>" + "</java>";
+        Element eActionXml = XmlUtils.parseXml(actionXml);
+        Context context2 = createContext(actionXml, null);
+        Path appPath2 = getAppPath();
+        JavaActionExecutor ae2 = new JavaActionExecutor();
+        Configuration jobConf = ae2.createBaseHadoopConf(context2, eActionXml);
+        ae2.setupActionConf(jobConf, context2, eActionXml, appPath2);
+
+        assertEquals("-Xmx200m -Djava.io.tmpdir=./tmp", 
jobConf.get(JavaActionExecutor.HADOOP_CHILD_JAVA_OPTS));
+        assertEquals("-Xmx1024m -Djava.io.tmpdir=./usr", 
jobConf.get(JavaActionExecutor.HADOOP_MAP_JAVA_OPTS));
+        assertEquals("-Xmx2560m -XX:NewRatio=8 -Djava.io.tmpdir=./tmp", 
jobConf.get(JavaActionExecutor.HADOOP_REDUCE_JAVA_OPTS));
+        assertNull(jobConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
+    }
     public void testUpdateConfForUberMode() throws Exception {
         Element actionXml1 = XmlUtils
                 .parseXml("<java>"
@@ -1749,15 +1813,17 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
         assertEquals("2560", 
launcherConf.get(JavaActionExecutor.YARN_AM_RESOURCE_MB));
         // heap size in child.opts (2048 + 512)
         int heapSize = 
ae.extractHeapSizeMB(launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
-        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true", 
launcherConf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true", 
launcherConf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapreduce.map.java.opts"));
         // There's an extra parameter (-Xmx1024m) in here when using YARN 
that's not here when using MR1
         if (createJobConf().get("yarn.resourcemanager.address") != null) {
             assertEquals("-Xmx1024m -Xmx2048m -Djava.net.preferIPv4Stack=true 
-Xmx2560m",
                     
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         }
         else {
-            assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true -Xmx2560m",
+            assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true -Xmx2560m 
-Djava.io.tmpdir=./tmp",
                     
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         }
         assertEquals(2560, heapSize);
@@ -1792,10 +1858,10 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         // heap size (2560 + 512)
         heapSize = 
ae.extractHeapSizeMB(launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
-        assertEquals("-Xmx1536m -Xmx2560m -XX:NewRatio=8", 
launcherConf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx1536m -Xmx2560m -XX:NewRatio=8", 
launcherConf.get("mapreduce.map.java.opts"));
-        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx1536m 
-Xmx2560m -XX:NewRatio=8 -Xmx3072m",
-                
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
+        assertEquals("-Xmx1536m -Xmx2560m -XX:NewRatio=8 
-Djava.io.tmpdir=./tmp", launcherConf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx1536m -Xmx2560m -XX:NewRatio=8 
-Djava.io.tmpdir=./tmp", launcherConf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx1536m 
-Xmx2560m -XX:NewRatio=8 " +
+                        "-Xmx3072m -Djava.io.tmpdir=./tmp", 
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         assertEquals(3072, heapSize);
 
         // env (equqls to mapreduce.map.env + am.env)
@@ -1830,10 +1896,10 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         // heap size (limit to 3584)
         heapSize = 
ae.extractHeapSizeMB(launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
-        assertEquals("-Xmx1536m -Xmx4000m -XX:NewRatio=8", 
launcherConf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx1536m -Xmx4000m -XX:NewRatio=8", 
launcherConf.get("mapreduce.map.java.opts"));
-        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx1536m 
-Xmx4000m -XX:NewRatio=8 -Xmx3584m",
-                
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
+        assertEquals("-Xmx1536m -Xmx4000m -XX:NewRatio=8 
-Djava.io.tmpdir=./tmp", launcherConf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx1536m -Xmx4000m -XX:NewRatio=8 
-Djava.io.tmpdir=./tmp", launcherConf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx1536m 
-Xmx4000m -XX:NewRatio=8 " +
+                        "-Xmx3584m -Djava.io.tmpdir=./tmp", 
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         assertEquals(3584, heapSize);
 
         // env (equqls to mapreduce.map.env + am.env)
@@ -1938,10 +2004,12 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         // heap size (2048 + 512)
         int heapSize = 
ae.extractHeapSizeMB(launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
-        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1 -Dkey2=val2", 
launcherConf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1 -Dkey2=val2", 
launcherConf.get("mapreduce.map.java.opts"));
-        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx200m 
-Xmx1536m -Xmx2048m -Dkey1=val1 -Dkey2=val2 -Xmx2560m",
-                
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
+        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1 -Dkey2=val2 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1 -Dkey2=val2 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx200m 
-Xmx1536m -Xmx2048m -Dkey1=val1 -Dkey2=val2 -Xmx2560m " +
+                        "-Djava.io.tmpdir=./tmp", 
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         assertEquals(2560, heapSize);
 
         Element actionXml2 = XmlUtils
@@ -1964,10 +2032,12 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         // heap size (2048 + 512)
         heapSize = 
ae.extractHeapSizeMB(launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
-        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1", 
launcherConf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1", 
launcherConf.get("mapreduce.map.java.opts"));
-        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx200m 
-Xmx1536m -Xmx2048m -Dkey1=val1 -Xmx2560m",
-                
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
+        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx200m -Xmx1536m -Xmx2048m -Dkey1=val1 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx1024m -Djava.net.preferIPv4Stack=true -Xmx200m 
-Xmx1536m -Xmx2048m -Dkey1=val1 -Xmx2560m " +
+                        "-Djava.io.tmpdir=./tmp", 
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         assertEquals(2560, heapSize);
 
         Element actionXml3 = XmlUtils
@@ -1990,10 +2060,12 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
 
         // heap size (2048 + 512)
         heapSize = 
ae.extractHeapSizeMB(launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS));
-        assertEquals("-Xmx200m -Xmx3072m -Xmx1024m -Dkey1=val1", 
launcherConf.get("mapred.child.java.opts"));
-        assertEquals("-Xmx200m -Xmx3072m -Xmx1024m -Dkey1=val1", 
launcherConf.get("mapreduce.map.java.opts"));
-        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true -Xmx200m 
-Xmx3072m -Xmx1024m -Dkey1=val1 -Xmx2560m",
-                
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
+        assertEquals("-Xmx200m -Xmx3072m -Xmx1024m -Dkey1=val1 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapred.child.java.opts"));
+        assertEquals("-Xmx200m -Xmx3072m -Xmx1024m -Dkey1=val1 
-Djava.io.tmpdir=./tmp",
+                launcherConf.get("mapreduce.map.java.opts"));
+        assertEquals("-Xmx2048m -Djava.net.preferIPv4Stack=true -Xmx200m 
-Xmx3072m -Xmx1024m -Dkey1=val1 -Xmx2560m " +
+                        "-Djava.io.tmpdir=./tmp", 
launcherConf.get(JavaActionExecutor.YARN_AM_COMMAND_OPTS).trim());
         assertEquals(2560, heapSize);
     }
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/e311d194/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 74fbd57..9d02e41 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.2.0 release (trunk - unreleased)
 
+OOZIE-2209 Oozie jobs to set "java.io.tmpdir" to "./tmp" (kailongs via rohini)
 OOZIE-2051 Allows multiple default action configuration files per action 
(venkatnrangan via bzhang)
 OOZIE-2170 Oozie should automatically set configs to make Spark jobs show up 
in the Spark History Server (rkanter)
 OOZIE-2140 Audit Log should be shown in Oozie UI (puru)

Reply via email to