This is an automated email from the ASF dual-hosted git repository.
abstractdog pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tez.git
The following commit(s) were added to refs/heads/master by this push:
new 2b671d6 TEZ-4299: Default java opts cause jdk11 to fail (#116)
(Laszlo Bodor reviewed by Jonathan Turner Eagles)
2b671d6 is described below
commit 2b671d6211ad8bdebaa16889bf4f1f4121c4f1f9
Author: Bodor Laszlo <[email protected]>
AuthorDate: Mon Apr 5 11:55:20 2021 +0200
TEZ-4299: Default java opts cause jdk11 to fail (#116) (Laszlo Bodor
reviewed by Jonathan Turner Eagles)
---
.../java/org/apache/tez/common/TezCommonUtils.java | 6 ++++++
.../org/apache/tez/dag/api/TezConfiguration.java | 21 +++++++++++++++++++--
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
b/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
index 2725958..3163968 100644
--- a/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
+++ b/tez-api/src/main/java/org/apache/tez/common/TezCommonUtils.java
@@ -566,4 +566,10 @@ public class TezCommonUtils {
return 1000l * timeoutSecs;
}
+ public static int getJavaVersion() {
+ String javaVersionString = System.getProperty("java.version");
+ return javaVersionString.split("\\.")[0].equals("1")
+ ? Integer.parseInt(javaVersionString.split("\\.")[1]) // "1.8" -> 8
+ : Integer.parseInt(javaVersionString.split("\\.")[0]); // "9.x" -> 9,
"11.x" -> 11
+ }
}
diff --git a/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
b/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
index eef0d65..17a826e 100644
--- a/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
+++ b/tez-api/src/main/java/org/apache/tez/dag/api/TezConfiguration.java
@@ -33,6 +33,7 @@ import
org.apache.hadoop.classification.InterfaceStability.Unstable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.util.Shell;
import org.apache.hadoop.yarn.api.records.LocalResource;
+import org.apache.tez.common.TezCommonUtils;
import org.apache.tez.common.annotation.ConfigurationClass;
import org.apache.tez.common.annotation.ConfigurationProperty;
import org.apache.tez.dag.api.EdgeProperty.ConcurrentEdgeTriggerType;
@@ -343,8 +344,11 @@ public class TezConfiguration extends Configuration {
@ConfigurationScope(Scope.AM)
@ConfigurationProperty
public static final String TEZ_AM_LAUNCH_CMD_OPTS = TEZ_AM_PREFIX +
"launch.cmd-opts";
- public static final String TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT =
+ public static final String TEZ_AM_LAUNCH_CMD_OPTS_JDK8_DEFAULT =
"-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA
-XX:+UseParallelGC";
+ public static final String TEZ_AM_LAUNCH_CMD_OPTS_JDK9_DEFAULT =
+ "-verbose:gc -Xlog:gc*,safepoint::time,uptime -XX:+UseNUMA
-XX:+UseParallelGC";
+ public static final String TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT;
/**
* String value. Command line options which will be prepended to {@link
@@ -368,8 +372,21 @@ public class TezConfiguration extends Configuration {
@ConfigurationProperty
public static final String TEZ_TASK_LAUNCH_CMD_OPTS = TEZ_TASK_PREFIX
+ "launch.cmd-opts";
- public static final String TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT =
+ public static final String TEZ_TASK_LAUNCH_CMD_OPTS_JDK8_DEFAULT =
"-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA
-XX:+UseParallelGC";
+ public static final String TEZ_TASK_LAUNCH_CMD_OPTS_JDK9_DEFAULT =
+ "-verbose:gc -Xlog:gc*,safepoint::time,uptime -XX:+UseNUMA
-XX:+UseParallelGC";
+ public static final String TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT;
+
+ static {
+ if (TezCommonUtils.getJavaVersion() >= 9) {
+ TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT = TEZ_AM_LAUNCH_CMD_OPTS_JDK9_DEFAULT;
+ TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT = TEZ_TASK_LAUNCH_CMD_OPTS_JDK9_DEFAULT;
+ } else {
+ TEZ_AM_LAUNCH_CMD_OPTS_DEFAULT = TEZ_AM_LAUNCH_CMD_OPTS_JDK8_DEFAULT;
+ TEZ_TASK_LAUNCH_CMD_OPTS_DEFAULT = TEZ_TASK_LAUNCH_CMD_OPTS_JDK8_DEFAULT;
+ }
+ }
/**
* Double value. Tez automatically determines the Xmx for the JVMs used to
run