diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java index 83b0ede..b8dffd2 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java @@ -26,6 +26,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.HadoopIllegalArgumentException; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; @@ -216,6 +217,19 @@ protected void serviceInit(Configuration conf) throws Exception { addService(containerManager); ((NMContext) context).setContainerManager(containerManager); + if (conf.getBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, + YarnConfiguration.DEFAULT_LOG_AGGREGATION_ENABLED)) { + // URL validation for NMController + String logServerUrl = conf.get(YarnConfiguration.YARN_LOG_SERVER_URL); + if (logServerUrl != null && !logServerUrl.isEmpty()) { + if (!logServerUrl.startsWith("http://")) { + throw new HadoopIllegalArgumentException("Invalid Configuration: " + + YarnConfiguration.YARN_LOG_SERVER_URL + " doesn't start with " + + " 'http://' though " + + YarnConfiguration.LOG_AGGREGATION_ENABLED + " is enabled."); + } + } + } WebServer webServer = createWebServer(context, containerManager .getContainersMonitor(), this.aclsManager, dirsHandler); addService(webServer);