From d2f4da958786b48bb8d3cc8fa8c1df9073b28511 Mon Sep 17 00:00:00 2001 From: Prabhu Joseph Date: Fri, 21 Jun 2019 14:49:38 +0530 Subject: [PATCH] YARN-9451. Fix AggregatedLogsBlock shows wrong NM http port. --- .../org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java | 9 +++++++++ .../hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java | 2 ++ 2 files changed, 11 insertions(+) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java index ef6876a..ce313b0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/log/AggregatedLogsBlock.java @@ -32,6 +32,7 @@ import org.apache.hadoop.yarn.logaggregation.LogAggregationWebUtils; import org.apache.hadoop.yarn.logaggregation.filecontroller.LogAggregationFileController; import org.apache.hadoop.yarn.logaggregation.filecontroller.LogAggregationFileControllerFactory; +import org.apache.hadoop.yarn.webapp.util.WebAppUtils; import org.apache.hadoop.yarn.webapp.view.HtmlBlock; import com.google.inject.Inject; @@ -129,6 +130,14 @@ private String getApplicationLogURL(ApplicationId applicationId) { StringBuilder sb = new StringBuilder(); String scheme = YarnConfiguration.useHttps(this.conf) ? "https://": "http://"; + + String webAppURLWithoutScheme = + WebAppUtils.getNMWebAppURLWithoutScheme(conf); + if (webAppURLWithoutScheme.contains(":")) { + String httpPort = webAppURLWithoutScheme.split(":")[1]; + nodeId = NodeId.fromString(nodeId).getHost() + ":" + httpPort; + } + sb.append(scheme).append(nodeId).append("/node/application/").append(appId); return sb.toString(); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java index 1135f9e..ec71730 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java @@ -146,6 +146,8 @@ public void testBadLogs() throws Exception { String out = data.toString(); assertTrue(out .contains("Logs not available for entity. Aggregation may not be complete, Check back later or try the nodemanager at localhost:1234")); + assertTrue(out + .contains("Or see application log at http://localhost:8042")); } -- 2.7.4 (Apple Git-66)