diff --git hbase-server/src/main/resources/hbase-webapps/master/table.jsp hbase-server/src/main/resources/hbase-webapps/master/table.jsp index 0e1d1cf..2480662 100644 --- hbase-server/src/main/resources/hbase-webapps/master/table.jsp +++ hbase-server/src/main/resources/hbase-webapps/master/table.jsp @@ -31,6 +31,7 @@ import="java.util.Collection" import="java.util.Collections" import="java.util.Comparator" + import="java.util.HashMap" import="org.apache.commons.lang.StringEscapeUtils" import="org.apache.hadoop.conf.Configuration" import="org.apache.hadoop.util.StringUtils" @@ -41,6 +42,8 @@ import="org.apache.hadoop.hbase.RegionLoad" import="org.apache.hadoop.hbase.HConstants" import="org.apache.hadoop.hbase.master.HMaster" + import="org.apache.hadoop.hbase.master.RegionStates" + import="org.apache.hadoop.hbase.master.RegionState" import="org.apache.hadoop.hbase.zookeeper.MetaTableLocator" import="org.apache.hadoop.hbase.util.Bytes" import="org.apache.hadoop.hbase.util.FSUtils" @@ -287,6 +290,14 @@ if ( fqtn != null ) { <%} else { Admin admin = master.getConnection().getAdmin(); + RegionStates states = master.getAssignmentManager().getRegionStates(); + Map> regionStates = states.getRegionByStateOfTable(table.getName()); + Map stateMap = new HashMap<>(); + for (RegionState.State regionState : regionStates.keySet()) { + for (HRegionInfo regionInfo : regionStates.get(regionState)) { + stateMap.put(regionInfo, regionState); + } + } RegionLocator r = master.getClusterConnection().getRegionLocator(table.getName()); try { %>

Table Attributes

@@ -420,6 +431,7 @@ Sort As + Ascending ShowDetailName&Start/End Key @@ -438,6 +450,7 @@ ShowDetailName&Start/End Key>() { + public int compare( + Map.Entry entry1, + Map.Entry entry2) { + if (entry1 == null || entry1.getValue()==null) { + return -1; + } else if (entry2 == null || entry2.getValue()==null) { + return 1; + } + int result = 0; + result = stateMap.get(entry1.getKey()).compareTo(stateMap.get(entry2.getKey())); + if (reverseOrder) { + result = -1 * result; + } + return result; + } + }); } } numRegions = regions.size(); @@ -616,6 +648,7 @@ ShowDetailName&Start/End Key <%= escapeXml(showWhole?Bytes.toStringBinary(regionInfo.getEndKey()):"-")%> + <%= state%> <% if (withReplica) { %>