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 4a151e7..401c884 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp @@ -19,13 +19,19 @@ --%> <%@ page contentType="text/html;charset=UTF-8" import="static org.apache.commons.lang.StringEscapeUtils.escapeXml" + import="com.google.protobuf.ByteString" + import="java.util.ArrayList" import="java.util.TreeMap" import="java.util.List" + import="java.util.LinkedHashMap" import="java.util.Map" import="java.util.Set" import="java.util.Collection" + import="java.util.Collections" + import="java.util.Comparator" import="org.owasp.esapi.ESAPI" import="org.apache.hadoop.conf.Configuration" + import="org.apache.hadoop.util.StringUtils" import="org.apache.hadoop.hbase.client.HTable" import="org.apache.hadoop.hbase.client.Admin" import="org.apache.hadoop.hbase.client.RegionLocator" @@ -40,6 +46,8 @@ import="org.apache.hadoop.hbase.util.Bytes" import="org.apache.hadoop.hbase.util.FSUtils" import="org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState" + import="org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos" + import="org.apache.hadoop.hbase.protobuf.generated.HBaseProtos" import="org.apache.hadoop.hbase.TableName" import="org.apache.hadoop.hbase.HColumnDescriptor" import="org.apache.hadoop.hbase.client.RegionReplicaUtil" @@ -51,6 +59,11 @@ MetaTableLocator metaTableLocator = new MetaTableLocator(); String fqtn = request.getParameter("name"); + String sortKey = request.getParameter("sort"); + String reverse = request.getParameter("reverse"); + final boolean reverseOrder = (reverse==null||!reverse.equals("false")); + String showWholeKey = request.getParameter("showwhole"); + final boolean showWhole = (showWholeKey!=null && showWholeKey.equals("true")); HTable table = null; String tableHeader; boolean withReplica = false; @@ -130,10 +143,10 @@ if ( fqtn != null ) { try { table = (HTable) master.getConnection().getTable(TableName.valueOf(fqtn)); if (table.getTableDescriptor().getRegionReplication() > 1) { - tableHeader = "
| Name | Region Server | Start Key | End Key | Locality | Requests | ReplicaID |
|---|
| Name | Region Server | ReadRequests | WriteRequests | RegionSize | FileNum | MemSize | Locality | Start Key | End Key | ReplicaID |
|---|
| Name | Region Server | Start Key | End Key | Locality | Requests |
|---|
| Name | Region Server | ReadRequests | WriteRequests | RegionSize | FileNum | MemSize | Locality | Start Key | End Key | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| <%= escapeXml(meta.getRegionNameAsString()) %> | <%= metaLocation.getHostname().toString() + ":" + master.getRegionServerInfoPort(metaLocation) %> | +<%= readReq%> | +<%= writeReq%> | +<%= fileSize%> | +<%= fileNum%> | +<%= memSize%> | +<%= locality%> | <%= escapeXml(Bytes.toString(meta.getStartKey())) %> | <%= escapeXml(Bytes.toString(meta.getEndKey())) %> | -- | -- |
+ +
| Name(<%= String.format("%,1d", regions.size())%>) | +Region Server | +ReadRequests (<%= String.format("%,1d", totalReadReq)%>) |
+WriteRequests (<%= String.format("%,1d", totalWriteReq)%>) |
+RegionSize (<%= StringUtils.byteDesc(totalSize*1024l*1024)%>) |
+FileNum (<%= String.format("%,1d", totalFileNum)%>) |
+MemSize (<%= StringUtils.byteDesc(totalMemSize*1024l*1024)%>) |
+Locality | +Start Key | +End Key | +<% + if (withReplica) { +%> +ReplicaID | +<% + } +%> +|||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <%= escapeXml(Bytes.toStringBinary(HRegionInfo.getRegionNameForDisplay(regionInfo, - conf))) %> | +<%= escapeXml(showWhole?Bytes.toStringBinary(regionInfo.getRegionName()):regionInfo.getEncodedName()) %> | <% - if (addr != null) { - String url = "//" + addr.getHostname() + ":" + master.getRegionServerInfoPort(addr) + "/rs-status"; + if (urlRegionServer != null) { %>- <%= addr.getHostname().toString() + ":" + addr.getPort() %> + <%= addr.getHostname().toString() + ":" + master.getRegionServerInfoPort(addr) %> | <% } else { @@ -329,12 +604,14 @@ if ( fqtn != null ) { <% } %> -<%= escapeXml(Bytes.toStringBinary(HRegionInfo.getStartKeyForDisplay(regionInfo, - conf))) %> | -<%= escapeXml(Bytes.toStringBinary(HRegionInfo.getEndKeyForDisplay(regionInfo, - conf))) %> | +<%= readReq%> | +<%= writeReq%> | +<%= regionSize%> | +<%= fileNum%> | +<%= memSize%> | <%= locality%> | -<%= req%> | +<%= escapeXml(showWhole?Bytes.toStringBinary(regionInfo.getStartKey()):"-")%> | +<%= escapeXml(showWhole?Bytes.toStringBinary(regionInfo.getEndKey()):"-")%> | <% if (withReplica) { %> @@ -363,7 +640,7 @@ if (withReplica) { String url = "//" + addr.getHostname() + ":" + master.getRegionServerInfoPort(addr) + "/"; %>
| <%= addr.getHostname().toString() + ":" + addr.getPort() %> | +<%= addr.getHostname().toString() + ":" + master.getRegionServerInfoPort(addr) %> | <%= rdEntry.getValue()%> | <% if (withReplica) { @@ -465,3 +742,35 @@ Actions: