diff --git a/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp b/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp index c25c5c3886ba..accc9043e802 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/procedures.jsp @@ -21,29 +21,17 @@ import="static org.apache.commons.lang3.StringEscapeUtils.escapeXml" import="java.util.Collections" import="java.util.Comparator" - import="java.util.ArrayList" import="java.util.Date" import="java.util.List" - import="java.util.Set" import="org.apache.hadoop.hbase.master.HMaster" import="org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv" import="org.apache.hadoop.hbase.procedure2.LockedResource" import="org.apache.hadoop.hbase.procedure2.Procedure" import="org.apache.hadoop.hbase.procedure2.ProcedureExecutor" - import="org.apache.hadoop.hbase.procedure2.util.StringUtils" - import="org.apache.hadoop.util.StringUtils.TraditionalBinaryPrefix" %> -<%@ page import="org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure" %> -<%@ page import="org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure" %> -<%@ page import="org.apache.hadoop.hbase.master.assignment.OpenRegionProcedure" %> -<%@ page import="org.apache.hadoop.hbase.master.assignment.CloseRegionProcedure" %> -<%@ page import="org.apache.hadoop.hbase.metrics.OperationMetrics" %> <%@ page import="java.util.Map" %> -<%@ page import="java.util.HashMap" %> -<%@ page import="org.apache.hadoop.hbase.master.MetricsAssignmentManagerSource" %> <%@ page import="org.apache.hadoop.hbase.master.MetricsAssignmentManager" %> <%@ page import="org.apache.hadoop.hbase.procedure2.ProcedureMetrics" %> -<%@ page import="org.apache.hadoop.hbase.metrics.Snapshot" %> <%@ page import="org.apache.hadoop.hbase.metrics.Histogram" %> <%@ page import="java.util.TreeMap" %> <%@ page import="org.apache.hadoop.hbase.metrics.impl.HistogramImpl" %> @@ -90,7 +78,7 @@

Procedure Time Statistics

-

We list proceduces completed successfully of the following types only: ServerCrashProcedure, TransitRegionStateProcedure, +

We list procedures completed successfully of the following types only: ServerCrashProcedure, TransitRegionStateProcedure, OpenRegionProcedure, CloseRegionProcedure.

diff --git a/hbase-server/src/main/resources/hbase-webapps/master/quotas.jsp b/hbase-server/src/main/resources/hbase-webapps/master/quotas.jsp index 52a92552432c..1c5bfb6647b6 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/quotas.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/quotas.jsp @@ -21,7 +21,6 @@ import="java.util.concurrent.TimeUnit" import="java.util.ArrayList" import="java.util.List" - import="org.apache.hadoop.conf.Configuration" import="org.apache.hadoop.hbase.master.HMaster" import="org.apache.hadoop.hbase.quotas.MasterQuotaManager" import="org.apache.hadoop.hbase.quotas.QuotaRetriever" diff --git a/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp b/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp index 02fc1bfc39e8..c86c9902ea1b 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/rsgroup.jsp @@ -24,8 +24,6 @@ import="java.util.List" import="java.util.Map" import="java.util.function.Function" - import="java.util.regex.Pattern" - import="java.util.stream.Stream" import="java.util.stream.Collectors" import="org.apache.hadoop.hbase.ServerName" import="org.apache.hadoop.hbase.TableName" @@ -169,7 +167,7 @@ totalRequestsPerSecond += sl.getRequestCountPerSecond(); lastContact = (System.currentTimeMillis() - sl.getReportTimestamp())/1000; } - long startcode = serverName.getStartcode(); + long startcode = serverName.getStartCode(); int infoPort = master.getRegionServerInfoPort(serverName); String url = "//" + serverName.getHostname() + ":" + infoPort + "/rs-status";%> diff --git a/hbase-server/src/main/resources/hbase-webapps/master/snapshot.jsp b/hbase-server/src/main/resources/hbase-webapps/master/snapshot.jsp index e85cab95d7e5..c862c9c7d3a2 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/snapshot.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/snapshot.jsp @@ -29,6 +29,18 @@ import="org.apache.hadoop.util.StringUtils" import="org.apache.hadoop.hbase.TableName" %> +<%! + /** + * Note: This method was taken from org.apache.hadoop.util.StringUtils.humanReadableInt(long). + * Given an integer, return a string that is in an approximate, but human + * readable format. + * @param number the number to format + * @return a human readable form of the integer + */ + private static String humanReadableInt(long number) { + return StringUtils.TraditionalBinaryPrefix.long2String(number, "", 1); + } +%> <% HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER); Configuration conf = master.getConfiguration(); @@ -134,14 +146,14 @@
<%= stats.getStoreFilesCount() %> HFiles (<%= stats.getArchivedStoreFilesCount() %> in archive), - total size <%= StringUtils.humanReadableInt(stats.getStoreFilesSize()) %> + total size <%= humanReadableInt(stats.getStoreFilesSize()) %> (<%= stats.getSharedStoreFilePercentage() %>% - <%= StringUtils.humanReadableInt(stats.getSharedStoreFilesSize()) %> shared with the source + <%= humanReadableInt(stats.getSharedStoreFilesSize()) %> shared with the source table)
<%= stats.getLogsCount() %> Logs, total size - <%= StringUtils.humanReadableInt(stats.getLogsSize()) %> + <%= humanReadableInt(stats.getLogsSize()) %>
<% if (stats.isSnapshotCorrupted()) { %> diff --git a/hbase-server/src/main/resources/hbase-webapps/master/snapshotsStats.jsp b/hbase-server/src/main/resources/hbase-webapps/master/snapshotsStats.jsp index 6202d7409b5c..f22f9bfc45b6 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/snapshotsStats.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/snapshotsStats.jsp @@ -32,6 +32,18 @@ import="org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription" %> <%@ page import="org.apache.hadoop.hbase.util.PrettyPrinter" %> +<%! + /** + * Note: This method was taken from org.apache.hadoop.util.StringUtils.humanReadableInt(long). + * Given an integer, return a string that is in an approximate, but human + * readable format. + * @param number the number to format + * @return a human readable form of the integer + */ + private static String humanReadableInt(long number) { + return StringUtils.TraditionalBinaryPrefix.long2String(number, "", 1); + } +%> <% HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER); Configuration conf = master.getConfiguration(); @@ -99,18 +111,18 @@ - - - + + + <% } %>

<%= snapshots.size() %> snapshot(s) in set.

-

Total Storefile Size: <%= StringUtils.humanReadableInt(totalSize) %>

-

Total Shared Storefile Size: <%= StringUtils.humanReadableInt(totalSharedSize.get()) %>, - Total Mob Storefile Size: <%= StringUtils.humanReadableInt(totalMobSize.get()) %>, - Total Archived Storefile Size: <%= StringUtils.humanReadableInt(totalArchivedSize.get()) %> - (<%= StringUtils.humanReadableInt(totalUnsharedArchivedSize) %>)

+

Total Storefile Size: <%= humanReadableInt(totalSize) %>

+

Total Shared Storefile Size: <%= humanReadableInt(totalSharedSize.get()) %>, + Total Mob Storefile Size: <%= humanReadableInt(totalMobSize.get()) %>, + Total Archived Storefile Size: <%= humanReadableInt(totalArchivedSize.get()) %> + (<%= humanReadableInt(totalUnsharedArchivedSize) %>)

Shared Storefile Size is the Storefile size shared between snapshots and active tables. Mob Storefile Size is the Mob Storefile size shared between snapshots and active tables. Archived Storefile Size is the Storefile size in Archive. diff --git a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp index c4c0e6204504..9d1bf2039610 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp @@ -71,6 +71,7 @@ <%@ page import="org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas" %> <%@ page import="org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota" %> <%@ page import="java.util.stream.Collectors" %> +<%@ page import="java.nio.charset.StandardCharsets" %> <%! /** * @return An empty region load stamped with the passed in regionInfo @@ -110,7 +111,7 @@ * @return an

- diff --git a/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp b/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp index 7e0d623e6867..b2f3938f56ff 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp @@ -19,10 +19,8 @@ --%> <%@ page contentType="text/html;charset=UTF-8" import="static org.apache.commons.lang3.StringEscapeUtils.escapeXml" - import="java.io.IOException" import="java.util.ArrayList" import="java.util.List" - import="java.util.Map" %> <%@ page import="org.apache.hadoop.hbase.client.TableDescriptor" %> <%@ page import="org.apache.hadoop.hbase.master.HMaster" %> diff --git a/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp b/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp index c6084f74e904..a251d335b798 100644 --- a/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp @@ -25,7 +25,6 @@ import="org.apache.hadoop.fs.FileSystem" import="org.apache.hadoop.fs.FileStatus" import="org.apache.hadoop.fs.Path" - import="org.apache.hadoop.hbase.HConstants" import="org.apache.hadoop.hbase.client.RegionInfo" import="org.apache.hadoop.hbase.client.RegionInfoDisplay" import="org.apache.hadoop.hbase.mob.MobUtils" @@ -35,6 +34,7 @@ import="org.apache.hadoop.hbase.regionserver.HRegion" import="org.apache.hadoop.hbase.regionserver.HStore" %> +<%@ page import="java.nio.charset.StandardCharsets" %> <% String regionName = request.getParameter("name"); HRegionServer rs = (HRegionServer) getServletContext().getAttribute(HRegionServer.REGIONSERVER); @@ -95,7 +95,7 @@ count ++; %> - + @@ -130,7 +130,7 @@ mobCnt ++; FileStatus status = rs.getFileSystem().getFileStatus(mobPath); String mobPathStr = mobPath.toString(); - String encodedStr = URLEncoder.encode(mobPathStr, HConstants.UTF8_ENCODING); %> + String encodedStr = URLEncoder.encode(mobPathStr, StandardCharsets.UTF_8); %>
<%= SnapshotDescriptionUtils.isExpiredSnapshot(snapshotDesc.getTtl(), snapshotDesc.getCreationTime(), System.currentTimeMillis()) ? "Yes" : "No" %> <%= StringUtils.humanReadableInt(stats.getSharedStoreFilesSize()) %><%= StringUtils.humanReadableInt(stats.getMobStoreFilesSize()) %><%= StringUtils.humanReadableInt(stats.getArchivedStoreFileSize()) %> - (<%= StringUtils.humanReadableInt(stats.getNonSharedArchivedStoreFilesSize()) %>)<%= humanReadableInt(stats.getSharedStoreFilesSize()) %><%= humanReadableInt(stats.getMobStoreFilesSize()) %><%= humanReadableInt(stats.getArchivedStoreFileSize()) %> + (<%= humanReadableInt(stats.getNonSharedArchivedStoreFilesSize()) %>)
tag contents server name links to server rs-status page. */ private static String buildRegionDeployedServerTag(RegionInfo regionInfo, HMaster master, - Map regionsToServer) { + Map regionsToServer) { ServerName serverName = regionsToServer.get(regionInfo); if (serverName == null) { @@ -118,7 +119,7 @@ } String hostName = serverName.getHostname(); - String hostNameEncoded = URLEncoder.encode(hostName); + String hostNameEncoded = URLEncoder.encode(hostName, StandardCharsets.UTF_8); // This port might be wrong if RS actually ended up using something else. int serverInfoPort = master.getRegionServerInfoPort(serverName); String urlRegionServer = "//" + hostNameEncoded + ":" + serverInfoPort + "/rs-status"; @@ -132,7 +133,7 @@ */ private static String moreRegionsToRender(int numRegionsRendered, int numRegions, String fqtn) { if (numRegions > numRegionsRendered) { - String allRegionsUrl = "?name=" + URLEncoder.encode(fqtn) + "&numRegions=all"; + String allRegionsUrl = "?name=" + URLEncoder.encode(fqtn, StandardCharsets.UTF_8) + "&numRegions=all"; return "This table has " + numRegions + " regions in total, in order to improve the page load time, only " @@ -345,7 +346,7 @@ if (metaLocation != null) { ServerMetrics sl = master.getServerManager().getLoad(metaLocation); // The host name portion should be safe, but I don't know how we handle IDNs so err on the side of failing safely. - hostAndPort = URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation); + hostAndPort = URLEncoder.encode(metaLocation.getHostname(), StandardCharsets.UTF_8) + ":" + master.getRegionServerInfoPort(metaLocation); if (sl != null) { Map map = sl.getRegionMetrics(); if (map.containsKey(meta.getRegionName())) { @@ -415,7 +416,7 @@ if (metaLocation != null) { ServerMetrics sl = master.getServerManager().getLoad(metaLocation); - hostAndPort = URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation); + hostAndPort = URLEncoder.encode(metaLocation.getHostname(), StandardCharsets.UTF_8) + ":" + master.getRegionServerInfoPort(metaLocation); if (sl != null) { Map map = sl.getRegionMetrics(); if (map.containsKey(meta.getRegionName())) { @@ -468,7 +469,7 @@ if (metaLocation != null) { ServerMetrics sl = master.getServerManager().getLoad(metaLocation); - hostAndPort = URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation); + hostAndPort = URLEncoder.encode(metaLocation.getHostname(), StandardCharsets.UTF_8) + ":" + master.getRegionServerInfoPort(metaLocation); if (sl != null) { Map map = sl.getRegionMetrics(); if (map.containsKey(meta.getRegionName())) { @@ -1054,11 +1055,9 @@ numRegionsRendered = 0; for (Map.Entry hriEntry : entryList) { RegionInfo regionInfo = hriEntry.getKey(); - ServerName addr = regionsToServer.get(regionInfo); RegionMetrics load = hriEntry.getValue(); float locality = 0.0f; float localityForSsd = 0.0f; - String state = "N/A"; if (load != null) { locality = load.getDataLocality(); localityForSsd = load.getDataLocalityForSsd(); @@ -1146,11 +1145,11 @@ <% for (Map.Entry rdEntry : regDistribution.entrySet()) { ServerName addr = rdEntry.getKey(); - String url = "//" + URLEncoder.encode(addr.getHostname()) + ":" + String url = "//" + URLEncoder.encode(addr.getHostname(), StandardCharsets.UTF_8) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status"; %>
<%= StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + <%= StringEscapeUtils.escapeHtml4(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) %> <%= rdEntry.getValue()%> <%= primaryRegDistribution.get(addr) == null ? 0 : primaryRegDistribution.get(addr)%>
<%= sf.getPath() %><%= (int) (fs.getLength(sf.getPath()) / 1024 / 1024) %><%= (int) (fs.getFileStatus(sf.getPath()).getLen() / 1024 / 1024) %> <%= new Date(sf.getModificationTimestamp()) %> <%= String.format("%,1d", sf.getFileInfo().getHFileInfo().getLenOfBiggestCell()) %> <%= sf.getFileInfo().getHFileInfo().getKeyOfBiggestCell() %>
<%= mobPathStr%>