Skip to content

Commit 6028423

Browse files
committed
MAPREDUCE-7429 Application log link is not accessible via TimelineServer WebUI in IPV6 scenario
1 parent ca3526d commit 6028423

File tree

2 files changed

+25
-0
lines changed
  • hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net
  • hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util

2 files changed

+25
-0
lines changed

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,24 @@ public static InetSocketAddress createSocketAddr(String target,
247247
return createSocketAddrForHost(host, port);
248248
}
249249

250+
public static String normalizeV6Address(String target) {
251+
if (!target.startsWith("[")) {
252+
if (target.contains("%")) {
253+
int i = target.lastIndexOf('%');
254+
target = target.trim();
255+
String port = target.substring(target.lastIndexOf(":") + 1);
256+
String addr = target.substring(0, i);
257+
target = "[" + addr + "]" + ":" + port;
258+
} else {
259+
int i = target.lastIndexOf(':');
260+
String port = target.substring(target.lastIndexOf(":") + 1);
261+
String addr = target.substring(0, i);
262+
target = "[" + addr + "]" + ":" + port;
263+
}
264+
}
265+
return target;
266+
}
267+
250268
private static final long URI_CACHE_SIZE_DEFAULT = 1000;
251269
private static final long URI_CACHE_EXPIRE_TIME_DEFAULT = 12;
252270
private static final Cache<String, URI> URI_CACHE = CacheBuilder.newBuilder()

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/webapp/util/WebAppUtils.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.Iterator;
3131
import java.util.List;
3232

33+
import org.apache.commons.lang3.StringUtils;
3334
import org.apache.hadoop.classification.InterfaceAudience.Private;
3435
import org.apache.hadoop.classification.InterfaceStability.Evolving;
3536
import org.apache.hadoop.conf.Configuration;
@@ -428,6 +429,12 @@ public static String getAggregatedLogURL(String serverHttpAddress,
428429
user == null || user.isEmpty()) {
429430
return null;
430431
}
432+
String [] ipAdds = serverHttpAddress.split("//");
433+
if (StringUtils.countMatches(ipAdds[1], ":") > 2) {
434+
ipAdds[1] = NetUtils.normalizeV6Address(ipAdds[1]);
435+
serverHttpAddress = ipAdds[0] + "//" + ipAdds[1];
436+
}
437+
431438
return PATH_JOINER.join(serverHttpAddress, "applicationhistory", "logs",
432439
allocatedNode, containerId, entity, user);
433440
}

0 commit comments

Comments
 (0)