YARN-7503. Configurable heap size / JVM opts in service AM. Contributed by Jonathan Hung
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6bf2c301 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6bf2c301 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6bf2c301 Branch: refs/heads/HDFS-7240 Commit: 6bf2c301924a3acae5a7510b8473f6292a5a471b Parents: 28d0fcb Author: Jian He <jia...@apache.org> Authored: Thu Nov 16 10:53:55 2017 -0800 Committer: Jian He <jia...@apache.org> Committed: Thu Nov 16 10:53:55 2017 -0800 ---------------------------------------------------------------------- .../apache/hadoop/yarn/service/client/ServiceClient.java | 10 +++++----- .../apache/hadoop/yarn/service/conf/YarnServiceConf.java | 5 +++++ .../service/containerlaunch/JavaCommandLineBuilder.java | 11 +++++------ 3 files changed, 15 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6bf2c301/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java index af43f8a..d1b6026 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java @@ -559,7 +559,7 @@ public class ServiceClient extends AppAdminClient implements SliderExitCodes, Map<String, String> env = addAMEnv(); // create AM CLI - String cmdStr = buildCommandLine(serviceName, conf, appRootDir, hasAMLog4j); + String cmdStr = buildCommandLine(app, conf, appRootDir, hasAMLog4j); submissionContext.setResource(Resource.newInstance(YarnServiceConf .getLong(YarnServiceConf.AM_RESOURCE_MEM, YarnServiceConf.DEFAULT_KEY_AM_RESOURCE_MEM, app.getConfiguration(), @@ -624,12 +624,12 @@ public class ServiceClient extends AppAdminClient implements SliderExitCodes, LOG.debug(builder.toString()); } - private String buildCommandLine(String serviceName, Configuration conf, + private String buildCommandLine(Service app, Configuration conf, Path appRootDir, boolean hasSliderAMLog4j) throws BadConfigException { JavaCommandLineBuilder CLI = new JavaCommandLineBuilder(); CLI.forceIPv4().headless(); - //TODO CLI.setJVMHeap - //TODO CLI.addJVMOPTS + CLI.setJVMOpts(YarnServiceConf.get(YarnServiceConf.JVM_OPTS, null, + app.getConfiguration(), conf)); if (hasSliderAMLog4j) { CLI.sysprop(SYSPROP_LOG4J_CONFIGURATION, YARN_SERVICE_LOG4J_FILENAME); CLI.sysprop(SYSPROP_LOG_DIR, ApplicationConstants.LOG_DIR_EXPANSION_VAR); @@ -637,7 +637,7 @@ public class ServiceClient extends AppAdminClient implements SliderExitCodes, CLI.add(ServiceMaster.class.getCanonicalName()); //TODO debugAM CLI.add(Arguments.ARG_DEBUG) CLI.add("-" + ServiceMaster.YARNFILE_OPTION, new Path(appRootDir, - serviceName + ".json")); + app.getName() + ".json")); // pass the registry binding CLI.addConfOptionToCLI(conf, RegistryConstants.KEY_REGISTRY_ZK_ROOT, RegistryConstants.DEFAULT_ZK_REGISTRY_ROOT); http://git-wip-us.apache.org/repos/asf/hadoop/blob/6bf2c301/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java index a7bd58d..684d980 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/conf/YarnServiceConf.java @@ -86,6 +86,11 @@ public class YarnServiceConf { public static final int DEFAULT_READINESS_CHECK_INTERVAL = 30; // seconds /** + * JVM opts. + */ + public static final String JVM_OPTS = "yarn.service.am.java.opts"; + + /** * Get long value for the property. First get from the userConf, if not * present, get from systemConf. * http://git-wip-us.apache.org/repos/asf/hadoop/blob/6bf2c301/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/JavaCommandLineBuilder.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/JavaCommandLineBuilder.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/JavaCommandLineBuilder.java index 7f6cc04..bb47971 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/JavaCommandLineBuilder.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/containerlaunch/JavaCommandLineBuilder.java @@ -48,13 +48,12 @@ public class JavaCommandLineBuilder extends CommandLineBuilder { } /** - * Set the size of the heap if a non-empty heap is passed in. - * @param heap empty string or something like "128M" ,"1G" etc. The value is - * trimmed. + * Set JVM opts. + * @param jvmOpts JVM opts */ - public void setJVMHeap(String heap) { - if (ServiceUtils.isSet(heap)) { - add("-Xmx" + heap.trim()); + public void setJVMOpts(String jvmOpts) { + if (ServiceUtils.isSet(jvmOpts)) { + add(jvmOpts); } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org