From 9d53fc932727359c3c2bf3d21d6ca6623dce4ea8 Mon Sep 17 00:00:00 2001 From: Sunil G Date: Fri, 19 May 2017 22:21:58 +0530 Subject: [PATCH] YARN-6627 --- .../main/resources/assemblies/hadoop-yarn-dist.xml | 5 ++++- .../server/resourcemanager/ResourceManager.java | 23 ++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml b/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml index 05e1a93..74ce9bc 100644 --- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml +++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-yarn-dist.xml @@ -180,7 +180,7 @@ hadoop-yarn/hadoop-yarn-ui/target/hadoop-yarn-ui-${project.version} - /share/hadoop/${hadoop.component}/webapps/rm + /share/hadoop/${hadoop.component}/webapps/ui2 **/* @@ -188,6 +188,9 @@ + + org.apache.hadoop:hadoop-yarn-ui + share/hadoop/${hadoop.component} false diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java index 1f5e8cd..e96e630 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java @@ -113,6 +113,8 @@ import org.eclipse.jetty.webapp.WebAppContext; import com.google.common.annotations.VisibleForTesting; + +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; @@ -1072,13 +1074,16 @@ protected void startWepApp() { String onDiskPath = getConfig() .get(YarnConfiguration.YARN_WEBAPP_UI2_WARFILE_PATH); + uiWebAppContext = new WebAppContext(); + uiWebAppContext.setContextPath(webPath); + if (null == onDiskPath) { String war = "hadoop-yarn-ui-" + VersionInfo.getVersion() + ".war"; URLClassLoader cl = (URLClassLoader) ClassLoader.getSystemClassLoader(); URL url = cl.findResource(war); if (null == url) { - onDiskPath = ""; + onDiskPath = getWebAppsPath("ui2"); } else { onDiskPath = url.getFile(); } @@ -1087,14 +1092,24 @@ protected void startWepApp() { "New web UI war file name:" + war + ", and path:" + onDiskPath); } - uiWebAppContext = new WebAppContext(); - uiWebAppContext.setContextPath(webPath); - uiWebAppContext.setWar(onDiskPath); + if (onDiskPath.endsWith(".war")) { + uiWebAppContext.setWar(onDiskPath); + } else { + uiWebAppContext.setResourceBase(onDiskPath); + } } webApp = builder.start(new RMWebApp(this), uiWebAppContext); } + private String getWebAppsPath(String appName) { + URL url = getClass().getClassLoader().getResource("webapps/" + appName); + if (url == null) { + return ""; + } + return url.toString(); + } + /** * Helper method to create and init {@link #activeServices}. This creates an * instance of {@link RMActiveServices} and initializes it. -- 2.10.1 (Apple Git-78)