Skip to content

Commit db7cc29

Browse files
committed
TEZ-4299: Default java opts cause jdk11 to fail (#116) (Laszlo Bodor reviewed by Jonathan Turner Eagles)
1 parent 02f9211 commit db7cc29

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,4 +565,10 @@ public static long getDAGSessionTimeout(Configuration conf) {
565565
return 1000l * timeoutSecs;
566566
}
567567

568+
public static int getJavaVersion() {
569+
String javaVersionString = System.getProperty("java.version");
570+
return javaVersionString.split("\\.")[0].equals("1")
571+
? Integer.parseInt(javaVersionString.split("\\.")[1]) // "1.8" -> 8
572+
: Integer.parseInt(javaVersionString.split("\\.")[0]); // "9.x" -> 9, "11.x" -> 11
573+
}
568574
}

tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import org.apache.tez.common.annotation.ConfigurationClass;
3030
import org.apache.tez.common.annotation.ConfigurationProperty;
31+
import org.apache.tez.common.TezCommonUtils;
3132
import org.slf4j.Logger;
3233
import org.slf4j.LoggerFactory;
3334
import java.util.concurrent.TimeUnit;
@@ -331,8 +332,11 @@ public TezConfiguration(boolean loadDefaults) {
331332
@ConfigurationScope(Scope.AM)
332333
@ConfigurationProperty
333334
public static final String TEZ_AM_LAUNCH_CMD_OPTS = TEZ_AM_PREFIX + "launch.cmd-opts";
334-
public static final String TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT =
335+
public static final String TEZ_AM_LAUNCH_CMD_OPTS_JDK8_DEFAULT =
335336
"-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA -XX:+UseParallelGC";
337+
public static final String TEZ_AM_LAUNCH_CMD_OPTS_JDK9_DEFAULT =
338+
"-verbose:gc -Xlog:gc*,safepoint::time,uptime -XX:+UseNUMA -XX:+UseParallelGC";
339+
public static final String TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT;
336340

337341
/**
338342
* String value. Command line options which will be prepended to {@link
@@ -356,8 +360,21 @@ public TezConfiguration(boolean loadDefaults) {
356360
@ConfigurationProperty
357361
public static final String TEZ_TASK_LAUNCH_CMD_OPTS = TEZ_TASK_PREFIX
358362
+ "launch.cmd-opts";
359-
public static final String TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT =
363+
public static final String TEZ_TASK_LAUNCH_CMD_OPTS_JDK8_DEFAULT =
360364
"-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA -XX:+UseParallelGC";
365+
public static final String TEZ_TASK_LAUNCH_CMD_OPTS_JDK9_DEFAULT =
366+
"-verbose:gc -Xlog:gc*,safepoint::time,uptime -XX:+UseNUMA -XX:+UseParallelGC";
367+
public static final String TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT;
368+
369+
static {
370+
if (TezCommonUtils.getJavaVersion() >= 9) {
371+
TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT = TEZ_AM_LAUNCH_CMD_OPTS_JDK9_DEFAULT;
372+
TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT = TEZ_TASK_LAUNCH_CMD_OPTS_JDK9_DEFAULT;
373+
} else {
374+
TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT = TEZ_AM_LAUNCH_CMD_OPTS_JDK8_DEFAULT;
375+
TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT = TEZ_TASK_LAUNCH_CMD_OPTS_JDK8_DEFAULT;
376+
}
377+
}
361378

362379
/**
363380
* Double value. Tez automatically determines the Xmx for the JVMs used to run

0 commit comments

Comments
 (0)