From 683897fd028dcc2185383f73b52d15245a69e0cb Mon Sep 17 00:00:00 2001 From: Karthik Kambatla Date: Fri, 24 Oct 2014 15:00:12 -0700 Subject: [PATCH] YARN-2713. "RM Home" link in NM should point to one of the RMs in an HA setup. (kasha) --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../hadoop/yarn/webapp/util/WebAppUtils.java | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index c30499f459b..11e7fe8aafb 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -57,6 +57,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 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); }