APEXCORE-779 In unit tests Yarn containers must use the same JVM as the test itself.
diff --git a/engine/src/main/java/com/datatorrent/stram/StramClient.java b/engine/src/main/java/com/datatorrent/stram/StramClient.java
index 06abdae..3a3c135 100644
--- a/engine/src/main/java/com/datatorrent/stram/StramClient.java
+++ b/engine/src/main/java/com/datatorrent/stram/StramClient.java
@@ -103,6 +103,8 @@
@Deprecated
public static final String YARN_APPLICATION_TYPE_DEPRECATED = "DataTorrent";
+ private static final String javaCmd = "${JAVA_HOME}" + "/bin/java";
+
public static final String LIB_JARS_SEP = ",";
// Configuration
@@ -114,7 +116,6 @@
private final int amPriority = 0;
private ApplicationId appId;
private final LogicalPlan dag;
- public String javaCmd = "${JAVA_HOME}" + "/bin/java";
// log4j.properties file
// if available, add to local resources and set into classpath
private final String log4jPropFile = "";
diff --git a/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java b/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java
index 455604b..0e3c0ab 100644
--- a/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java
+++ b/engine/src/test/java/com/datatorrent/stram/StramMiniClusterTest.java
@@ -44,7 +44,6 @@
import org.slf4j.LoggerFactory;
import org.apache.apex.common.util.JarHelper;
-import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.ApplicationMasterProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest;
@@ -125,19 +124,10 @@
conf = StramClientUtils.addDTDefaultResources(conf);
conf.setInt(YarnConfiguration.RM_SCHEDULER_MINIMUM_ALLOCATION_MB, 64);
conf.setInt("yarn.nodemanager.vmem-pmem-ratio", 20); // workaround to avoid containers being killed because java allocated too much vmem
- conf.setStrings("yarn.scheduler.capacity.root.queues", "default");
- conf.setStrings("yarn.scheduler.capacity.root.default.capacity", "100");
-
- StringBuilder adminEnv = new StringBuilder(1024);
- if (System.getenv("JAVA_HOME") == null) {
- adminEnv.append("JAVA_HOME=").append(System.getProperty("java.home"));
- adminEnv.append(",");
- }
- adminEnv.append("MALLOC_ARENA_MAX=4"); // see MAPREDUCE-3068, MAPREDUCE-3065
- adminEnv.append(",");
- adminEnv.append("CLASSPATH=").append(getTestRuntimeClasspath());
-
- conf.set(YarnConfiguration.NM_ADMIN_USER_ENV, adminEnv.toString());
+ conf.set("yarn.scheduler.capacity.root.queues", "default");
+ conf.set("yarn.scheduler.capacity.root.default.capacity", "100");
+ conf.set(YarnConfiguration.NM_ADMIN_USER_ENV, String.format("JAVA_HOME=%s,CLASSPATH=%s", System.getProperty("java.home"), getTestRuntimeClasspath()));
+ conf.set(YarnConfiguration.NM_ENV_WHITELIST, YarnConfiguration.DEFAULT_NM_ENV_WHITELIST.replaceAll("JAVA_HOME,*", ""));
if (yarnCluster == null) {
yarnCluster = new MiniYARNCluster(StramMiniClusterTest.class.getName(),
@@ -229,9 +219,6 @@
StramClient client = new StramClient(yarnConf, dag);
try {
client.start();
- if (StringUtils.isBlank(System.getenv("JAVA_HOME"))) {
- client.javaCmd = "java"; // JAVA_HOME not set in the yarn mini cluster
- }
LOG.info("Running client");
client.startApplication();
boolean result = client.monitorApplication();
@@ -275,9 +262,6 @@
tb.addFromProperties(props, null);
StramClient client = new StramClient(new Configuration(yarnCluster.getConfig()), createDAG(tb));
- if (StringUtils.isBlank(System.getenv("JAVA_HOME"))) {
- client.javaCmd = "java"; // JAVA_HOME not set in the yarn mini cluster
- }
try {
client.start();
client.startApplication();
@@ -382,9 +366,6 @@
LOG.info("Initializing Client");
StramClient client = new StramClient(conf, dag);
- if (StringUtils.isBlank(System.getenv("JAVA_HOME"))) {
- client.javaCmd = "java"; // JAVA_HOME not set in the yarn mini cluster
- }
try {
client.start();
client.startApplication();
@@ -614,9 +595,6 @@
dag.getContextAttributes(operator).put(OperatorContext.RECOVERY_ATTEMPTS, 0);
StramClient client = new StramClient(conf, dag);
- if (StringUtils.isBlank(System.getenv("JAVA_HOME"))) {
- client.javaCmd = "java";
- }
try {
client.start();
client.startApplication();