diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java index a8f67ff..3aeb33e 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java @@ -143,14 +143,29 @@ public static String getResolvedRMWebAppURLWithoutScheme(Configuration conf) { public static String getResolvedRMWebAppURLWithoutScheme(Configuration conf, Policy httpPolicy) { InetSocketAddress address = null; + String rmId = null; + if (HAUtil.isHAEnabled(conf)) { + // If HA enabled, pick one of the RM-IDs and rely on redirect to go to + // the Active RM + rmId = (String) HAUtil.getRMHAIds(conf).toArray()[0]; + } + if (httpPolicy == Policy.HTTPS_ONLY) { address = - conf.getSocketAddr(YarnConfiguration.RM_WEBAPP_HTTPS_ADDRESS, + conf.getSocketAddr( + rmId == null + ? YarnConfiguration.RM_WEBAPP_HTTPS_ADDRESS + : HAUtil.addSuffix( + YarnConfiguration.RM_WEBAPP_HTTPS_ADDRESS, rmId), YarnConfiguration.DEFAULT_RM_WEBAPP_HTTPS_ADDRESS, YarnConfiguration.DEFAULT_RM_WEBAPP_HTTPS_PORT); } else { address = - conf.getSocketAddr(YarnConfiguration.RM_WEBAPP_ADDRESS, + conf.getSocketAddr( + rmId == null + ? YarnConfiguration.RM_WEBAPP_ADDRESS + : HAUtil.addSuffix( + YarnConfiguration.RM_WEBAPP_ADDRESS, rmId), YarnConfiguration.DEFAULT_RM_WEBAPP_ADDRESS, YarnConfiguration.DEFAULT_RM_WEBAPP_PORT); }