From a59e74cd667d024482218b430aaa93954cc8e8ee Mon Sep 17 00:00:00 2001 From: stack Date: Fri, 26 Jul 2019 21:32:37 -0700 Subject: [PATCH] HBASE-22751 table.jsp fails if ugly regions in table --- .../resources/hbase-webapps/master/table.jsp | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) 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 07f2050b71..6b4427ebb2 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp @@ -29,6 +29,7 @@ import="java.util.Map" import="java.util.Objects" import="java.util.TreeMap" + import=" java.util.concurrent.TimeUnit" import="org.apache.commons.lang3.StringEscapeUtils" import="org.apache.hadoop.conf.Configuration" import="org.apache.hadoop.hbase.HTableDescriptor" @@ -38,8 +39,10 @@ import="org.apache.hadoop.hbase.ServerName" import="org.apache.hadoop.hbase.TableName" import="org.apache.hadoop.hbase.TableNotFoundException" - import="org.apache.hadoop.hbase.client.Admin" + import="org.apache.hadoop.hbase.client.AsyncAdmin" + import="org.apache.hadoop.hbase.client.AsyncConnection" import="org.apache.hadoop.hbase.client.CompactionState" + import="org.apache.hadoop.hbase.client.ConnectionFactory" import="org.apache.hadoop.hbase.client.RegionInfo" import="org.apache.hadoop.hbase.client.RegionInfoBuilder" import="org.apache.hadoop.hbase.client.RegionLocator" @@ -122,6 +125,8 @@ pageTitle = "Table: " + escaped_fqtn; } pageContext.setAttribute("pageTitle", pageTitle); + AsyncConnection connection = ConnectionFactory.createAsyncConnection(master.getConfiguration()).get(); + AsyncAdmin admin = connection.getAdminBuilder().setOperationTimeout(5, TimeUnit.SECONDS).build(); %> @@ -148,7 +153,6 @@ if (fqtn != null && master.isInitialized()) {


<% - try (Admin admin = master.getConnection().getAdmin()) { if (action.equals("split")) { if (key != null && key.length() > 0) { admin.split(TableName.valueOf(fqtn), Bytes.toBytes(key)); @@ -159,7 +163,7 @@ if (fqtn != null && master.isInitialized()) { %> Split request accepted. <% } else if (action.equals("compact")) { if (key != null && key.length() > 0) { - List regions = admin.getRegions(TableName.valueOf(fqtn)); + List regions = admin.getRegions(TableName.valueOf(fqtn)).get(); byte[] row = Bytes.toBytes(key); for (RegionInfo region : regions) { @@ -173,11 +177,10 @@ if (fqtn != null && master.isInitialized()) { %> Compact request accepted. <% } else if (action.equals("merge")) { if (left != null && left.length() > 0 && right != null && right.length() > 0) { - admin.mergeRegionsAsync(Bytes.toBytesBinary(left), Bytes.toBytesBinary(right), false); + admin.mergeRegions(Bytes.toBytesBinary(left), Bytes.toBytesBinary(right), false); } %> Merge request accepted. <% } - } %> @@ -253,7 +256,6 @@ if (fqtn != null && master.isInitialized()) { <%} else { - Admin admin = master.getConnection().getAdmin(); RegionStates states = master.getAssignmentManager().getRegionStates(); Map> regionStates = states.getRegionByStateOfTable(table.getName()); Map stateMap = new HashMap<>(); @@ -273,7 +275,7 @@ if (fqtn != null && master.isInitialized()) { Enabled - <%= admin.isTableEnabled(table.getName()) %> + <%= admin.isTableEnabled(table.getName()).get() %> Is the table enabled @@ -281,7 +283,7 @@ if (fqtn != null && master.isInitialized()) { <% try { - CompactionState compactionState = admin.getCompactionState(table.getName()); + CompactionState compactionState = admin.getCompactionState(table.getName()).get(); %> <%= compactionState %> <% @@ -522,7 +524,7 @@ if (fqtn != null && master.isInitialized()) { if (urlRegionServer != null) { %> - <%= StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %> + <%= addr == null? "-": StringEscapeUtils.escapeHtml4(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) %> <% } else { @@ -597,7 +599,7 @@ if (withReplica) { %><%= StringEscapeUtils.escapeHtml4(element.toString()) %><% } } finally { - admin.close(); + connection.close(); } } // end else %> -- 2.19.1