Skip to content

Commit 8dc1c99

Browse files
committed
changed rendering
1 parent 303739e commit 8dc1c99

File tree

1 file changed

+72
-29
lines changed

1 file changed

+72
-29
lines changed

hbase/stackable/patches/2.6.1/0005-extend-servername-with-external-host-and-port.patch

Lines changed: 72 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From 69c540f561f740596340b73ed1a77d5b115e1bee Mon Sep 17 00:00:00 2001
1+
From 6f9e3cae1bd74e7feeca428d34f078c5542dfc2c Mon Sep 17 00:00:00 2001
22
From: Andrew Kenworthy <[email protected]>
33
Date: Wed, 16 Apr 2025 16:43:33 +0200
44
Subject: extend servername with external host and port
@@ -14,11 +14,11 @@ Subject: extend servername with external host and port
1414
.../apache/hadoop/hbase/master/HMaster.java | 7 ++++
1515
.../hadoop/hbase/master/ServerManager.java | 4 ++-
1616
.../hbase/regionserver/HRegionServer.java | 16 ++++++++-
17-
.../resources/hbase-webapps/master/hbck.jsp | 2 +-
18-
.../hbase-webapps/master/rsgroup.jsp | 10 +++---
19-
.../resources/hbase-webapps/master/table.jsp | 22 ++++++------
17+
.../resources/hbase-webapps/master/hbck.jsp | 4 +--
18+
.../hbase-webapps/master/rsgroup.jsp | 15 +++-----
19+
.../resources/hbase-webapps/master/table.jsp | 30 ++++++++--------
2020
.../hbase/zookeeper/MasterAddressTracker.java | 3 ++
21-
14 files changed, 102 insertions(+), 23 deletions(-)
21+
14 files changed, 107 insertions(+), 33 deletions(-)
2222

2323
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java
2424
index 0fe181b503..be121ea641 100644
@@ -279,41 +279,53 @@ index 27bcef2f06..8438378059 100644
279279
} catch (ServiceException se) {
280280
IOException ioe = ProtobufUtil.getRemoteException(se);
281281
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/hbck.jsp b/hbase-server/src/main/resources/hbase-webapps/master/hbck.jsp
282-
index 38e16ca8e2..3bd14bf524 100644
282+
index 38e16ca8e2..c30fd7753e 100644
283283
--- a/hbase-server/src/main/resources/hbase-webapps/master/hbck.jsp
284284
+++ b/hbase-server/src/main/resources/hbase-webapps/master/hbck.jsp
285-
@@ -366,7 +366,7 @@ private static String formatServerName(HMaster master,
285+
@@ -364,9 +364,9 @@ private static String formatServerName(HMaster master,
286+
}
287+
String sn = serverName.toString();
286288
if (serverManager.isServerOnline(serverName)) {
287-
int infoPort = master.getRegionServerInfoPort(serverName);
289+
- int infoPort = master.getRegionServerInfoPort(serverName);
290+
+ int infoPort = serverName.getExternalPort();
288291
if (infoPort > 0) {
289292
- return "<a href=" + "//" + serverName.getHostname() + ":" +
290293
+ return "<a href=" + "//" + serverName.getExternalHostname() + ":" +
291294
infoPort + "/rs-status>" + sn + "</a>";
292295
} else {
293296
return "<b>" + sn + "</b>";
294297
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp b/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp
295-
index 6ba6f78a27..5dad8e07a2 100644
298+
index 6ba6f78a27..f3275b9165 100644
296299
--- a/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp
297300
+++ b/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp
298-
@@ -171,7 +171,7 @@
301+
@@ -170,8 +170,7 @@
302+
lastContact = (System.currentTimeMillis() - sl.getReportTimestamp())/1000;
299303
}
300304
long startcode = serverName.getStartcode();
301-
int infoPort = master.getRegionServerInfoPort(serverName);
305+
- int infoPort = master.getRegionServerInfoPort(serverName);
302306
- String url = "//" + serverName.getHostname() + ":" + infoPort + "/rs-status";%>
303307
+ String url = "//" + serverName.getExternalHostname() + ":" + serverName.getExternalPort() + "/rs-status";%>
304308
<tr>
305309
<td><a href="<%= url %>"><%= serverName.getServerName() %></a></td>
306310
<td><%= new Date(startcode) %></td>
307-
@@ -226,7 +226,7 @@
311+
@@ -225,8 +224,7 @@
312+
double memStoreSizeMB = sl.getRegionMetrics().values()
308313
.stream().mapToDouble(rm -> rm.getMemStoreSize().get(Size.Unit.MEGABYTE))
309314
.sum();
310-
int infoPort = master.getRegionServerInfoPort(serverName);
315+
- int infoPort = master.getRegionServerInfoPort(serverName);
311316
- String url = "//" + serverName.getHostname() + ":" + infoPort + "/rs-status";
312317
+ String url = "//" + serverName.getExternalHostname() + ":" + serverName.getExternalPort() + "/rs-status";
313318

314319
if (memStoreSizeMB > 0) {
315320
memStoreSizeMBStr = TraditionalBinaryPrefix.long2String(
316-
@@ -277,7 +277,7 @@
321+
@@ -270,14 +268,13 @@
322+
ServerName serverName = serverMaping.get(server);
323+
ServerMetrics sl = onlineServers.get(server);
324+
if (sl != null && serverName != null) {
325+
- int infoPort = master.getRegionServerInfoPort(serverName);
326+
long readRequestCount = 0;
327+
long writeRequestCount = 0;
328+
for (RegionMetrics rm : sl.getRegionMetrics().values()) {
317329
readRequestCount += rm.getReadRequestCount();
318330
writeRequestCount += rm.getWriteRequestCount();
319331
}
@@ -322,28 +334,41 @@ index 6ba6f78a27..5dad8e07a2 100644
322334
%>
323335
<tr>
324336
<td><a href="<%= url %>"><%= serverName.getServerName() %></a></td>
325-
@@ -331,7 +331,7 @@
337+
@@ -330,8 +327,7 @@
338+
totalStaticIndexSizeKB += rm.getStoreFileUncompressedDataIndexSize().get(Size.Unit.KILOBYTE);
326339
totalStaticBloomSizeKB += rm.getBloomFilterSize().get(Size.Unit.KILOBYTE);
327340
}
328-
int infoPort = master.getRegionServerInfoPort(serverName);
341+
- int infoPort = master.getRegionServerInfoPort(serverName);
329342
- String url = "//" + serverName.getHostname() + ":" + infoPort + "/rs-status";
330343
+ String url = "//" + serverName.getExternalHostname() + ":" + serverName.getExternalPort() + "/rs-status";
331344
if (storeUncompressedSizeMB > 0) {
332345
storeUncompressedSizeMBStr = TraditionalBinaryPrefix.long2String(
333346
(long) storeUncompressedSizeMB * TraditionalBinaryPrefix.MEGA.value, "B", 1);
334-
@@ -397,7 +397,7 @@
347+
@@ -396,8 +392,7 @@
348+
percentDone = String.format("%.2f", 100 *
335349
((float) currentCompactedCells / totalCompactingCells)) + "%";
336350
}
337-
int infoPort = master.getRegionServerInfoPort(serverName);
351+
- int infoPort = master.getRegionServerInfoPort(serverName);
338352
- String url = "//" + serverName.getHostname() + ":" + infoPort + "/rs-status";
339353
+ String url = "//" + serverName.getExternalHostname() + ":" + serverName.getExternalPort() + "/rs-status";
340354
%>
341355
<tr>
342356
<td><a href="<%= url %>"><%= serverName.getServerName() %></a></td>
343357
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
344-
index 56a0c8096d..2da74e9709 100644
358+
index 56a0c8096d..49c8a69c60 100644
345359
--- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
346360
+++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
361+
@@ -93,8 +93,8 @@
362+
* its region server.
363+
* @return an anchor tag if one can be built, {@code null} otherwise.
364+
*/
365+
- private static String buildRegionServerLink(final ServerName serverName, final int rsInfoPort,
366+
- final RegionInfo regionInfo, final RegionState.State regionState) {
367+
+ private static String buildRegionServerLink(final ServerName serverName,
368+
+ final RegionInfo regionInfo, final RegionState.State regionState) {
369+
if (serverName == null || regionInfo == null) { return null; }
370+
371+
if (regionState != RegionState.State.OPEN) {
347372
@@ -102,7 +102,7 @@
348373
return serverName.getServerName();
349374
}
@@ -358,7 +383,7 @@ index 56a0c8096d..2da74e9709 100644
358383
ServerMetrics sl = master.getServerManager().getLoad(metaLocation);
359384
// The host name portion should be safe, but I don't know how we handle IDNs so err on the side of failing safely.
360385
- hostAndPort = URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation);
361-
+ hostAndPort = URLEncoder.encode(metaLocation.getExternalHostname()) + ":" + master.getRegionServerInfoPort(metaLocation);
386+
+ hostAndPort = URLEncoder.encode(metaLocation.getExternalHostname()) + ":" + metaLocation.getExternalPort().toString();
362387
if (sl != null) {
363388
Map<byte[], RegionMetrics> map = sl.getRegionMetrics();
364389
if (map.containsKey(meta.getRegionName())) {
@@ -367,7 +392,7 @@ index 56a0c8096d..2da74e9709 100644
367392
if (metaLocation != null) {
368393
ServerMetrics sl = master.getServerManager().getLoad(metaLocation);
369394
- hostAndPort = URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation);
370-
+ hostAndPort = URLEncoder.encode(metaLocation.getExternalHostname()) + ":" + master.getRegionServerInfoPort(metaLocation);
395+
+ hostAndPort = URLEncoder.encode(metaLocation.getExternalHostname()) + ":" + metaLocation.getExternalPort().toString();
371396
if (sl != null) {
372397
Map<byte[], RegionMetrics> map = sl.getRegionMetrics();
373398
if (map.containsKey(meta.getRegionName())) {
@@ -376,16 +401,25 @@ index 56a0c8096d..2da74e9709 100644
376401
if (metaLocation != null) {
377402
ServerMetrics sl = master.getServerManager().getLoad(metaLocation);
378403
- hostAndPort = URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation);
379-
+ hostAndPort = URLEncoder.encode(metaLocation.getExternalHostname()) + ":" + master.getRegionServerInfoPort(metaLocation);
404+
+ hostAndPort = URLEncoder.encode(metaLocation.getExternalHostname()) + ":" + metaLocation.getExternalPort().toString();
380405
if (sl != null) {
381406
Map<byte[], RegionMetrics> map = sl.getRegionMetrics();
382407
if (map.containsKey(meta.getRegionName())) {
408+
@@ -548,7 +548,7 @@
409+
<td title="endKey"><%= endKeyDisplay %></td>
410+
<td title="replicaId"><%= replicaIdDisplay %></td>
411+
<td title="regionState"><%= regionStateDisplay %></td>
412+
- <td title="<%= serverColumnName + "," + startCodeColumnName %>"><%= serverName != null ? buildRegionServerLink(serverName, master.getRegionServerInfoPort(serverName), regionInfo, regionState) : "" %></td>
413+
+ <td title="<%= serverColumnName + "," + startCodeColumnName %>"><%= serverName != null ? buildRegionServerLink(serverName, regionInfo, regionState) : "" %></td>
414+
<td title="<%= seqNumColumnName %>"><%= seqNum %></td>
415+
<td title="<%= serverNameColumnName %>"><%= targetServerName %></td>
416+
<td><%= mergeRegionNames %></td>
383417
@@ -951,7 +951,7 @@
384418
ServerMetrics sl = master.getServerManager().getLoad(addr);
385419
// This port might be wrong if RS actually ended up using something else.
386420
urlRegionServer =
387421
- "//" + URLEncoder.encode(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
388-
+ "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
422+
+ "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + addr.getExternalPort().toString() + "/rs-status";
389423
if(sl != null) {
390424
Integer i = regDistribution.get(addr);
391425
if (null == i) i = Integer.valueOf(0);
@@ -394,7 +428,7 @@ index 56a0c8096d..2da74e9709 100644
394428
%>
395429
<td>
396430
- <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a>
397-
+ <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a>
431+
+ <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + addr.getExternalPort().toString() %></a>
398432
</td>
399433
<%
400434
} else {
@@ -403,16 +437,25 @@ index 56a0c8096d..2da74e9709 100644
403437
// This port might be wrong if RS actually ended up using something else.
404438
urlRegionServer =
405439
- "//" + URLEncoder.encode(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
406-
+ "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
440+
+ "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + addr.getExternalPort().toString() + "/rs-status";
407441
}
408442
if (numRegionsRendered < numRegionsToRender) {
409443
numRegionsRendered++;
444+
@@ -1048,7 +1048,7 @@
445+
if (urlRegionServer != null) {
446+
%>
447+
<td>
448+
- <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a>
449+
+ <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + addr.getExternalPort().toString() %></a>
450+
</td>
451+
<%
452+
} else {
410453
@@ -1098,7 +1098,7 @@
411454
if (addr != null) {
412455
// This port might be wrong if RS actually ended up using something else.
413456
urlRegionServer =
414457
- "//" + URLEncoder.encode(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
415-
+ "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
458+
+ "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + addr.getExternalPort().toString() + "/rs-status";
416459
}
417460
if (numRegionsRendered < numRegionsToRender) {
418461
numRegionsRendered++;
@@ -421,7 +464,7 @@ index 56a0c8096d..2da74e9709 100644
421464
%>
422465
<td>
423466
- <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a>
424-
+ <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a>
467+
+ <a href="<%= urlRegionServer %>"><%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + addr.getExternalPort().toString() %></a>
425468
</td>
426469
<%
427470
} else {
@@ -430,11 +473,11 @@ index 56a0c8096d..2da74e9709 100644
430473
for (Map.Entry<ServerName, Integer> rdEntry : regDistribution.entrySet()) {
431474
ServerName addr = rdEntry.getKey();
432475
- String url = "//" + URLEncoder.encode(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
433-
+ String url = "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status";
476+
+ String url = "//" + URLEncoder.encode(addr.getExternalHostname()) + ":" + addr.getExternalPort().toString() + "/rs-status";
434477
%>
435478
<tr>
436479
- <td><a href="<%= url %>"><%= StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a></td>
437-
+ <td><a href="<%= url %>"><%= StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %></a></td>
480+
+ <td><a href="<%= url %>"><%= StringEscapeUtils.escapeHtml4(addr.getExternalHostname().toString()) + ":" + addr.getExternalPort().toString() %></a></td>
438481
<td><%= rdEntry.getValue()%></td>
439482
<%
440483
if (withReplica) {

0 commit comments

Comments
 (0)