diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 36b70b13de8..3d4cdfdc740 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -30,6 +30,9 @@ Release 2.7.0 - UNRELEASED YARN-2254. TestRMWebServicesAppsModification should run against both CS and FS. (Zhihai Xu via kasha) + YARN-2713. "RM Home" link in NM should point to one of the RMs in an + HA setup. (kasha) + Release 2.6.0 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java index a8f67ff569f..3aeb33e38a3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java @@ -143,14 +143,29 @@ public class WebAppUtils { 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); }