Index: src/main/resources/hbase-webapps/master/table.jsp
===================================================================
--- src/main/resources/hbase-webapps/master/table.jsp (revision 1085977)
+++ src/main/resources/hbase-webapps/master/table.jsp (working copy)
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8"
- import="java.util.Map"
+ import="java.util.HashMap"
import="org.apache.hadoop.io.Writable"
import="org.apache.hadoop.conf.Configuration"
import="org.apache.hadoop.hbase.client.HTable"
@@ -7,6 +7,8 @@
import="org.apache.hadoop.hbase.HRegionInfo"
import="org.apache.hadoop.hbase.HServerAddress"
import="org.apache.hadoop.hbase.HServerInfo"
+ import="org.apache.hadoop.hbase.HServerLoad"
+ import="org.apache.hadoop.hbase.HServerLoad.RegionLoad"
import="org.apache.hadoop.hbase.io.ImmutableBytesWritable"
import="org.apache.hadoop.hbase.master.HMaster"
import="org.apache.hadoop.hbase.util.Bytes"
@@ -18,7 +20,7 @@
HBaseAdmin hbadmin = new HBaseAdmin(conf);
String tableName = request.getParameter("name");
HTable table = new HTable(conf, tableName);
- String tableHeader = "
Table Regions
| Name | Region Server | Start Key | End Key |
";
+ String tableHeader = "Table Regions
| Name | Region Server | Start Key | End Key | Requests |
";
HServerAddress rl = master.getCatalogTracker().getRootLocation();
boolean showFragmentation = conf.getBoolean("hbase.master.ui.fragmentation.enabled", false);
Map frags = null;
@@ -133,6 +135,7 @@
<% } %>
<%
+ Map regDistribution = new HashMap();
Map regions = table.getRegionsInfo();
if(regions != null && regions.size() > 0) { %>
<%= tableHeader %>
@@ -140,6 +143,7 @@
for(Map.Entry hriEntry : regions.entrySet()) {
HRegionInfo regionInfo = hriEntry.getKey();
HServerAddress addr = hriEntry.getValue();
+ long req = 0;
int infoPort = 0;
String urlRegionServer = null;
@@ -147,9 +151,17 @@
if (addr != null) {
HServerInfo info = master.getServerManager().getHServerInfo(addr);
if (info != null) {
+ HServerLoad sl = info.getLoad();
+ Map map = sl.getRegionsLoad();
+ if (map.containsKey(regionInfo.getRegionName())) {
+ req = map.get(regionInfo.getRegionName()).getRequestsCount();
+ }
infoPort = info.getInfoPort();
urlRegionServer =
"http://" + addr.getHostname().toString() + ":" + infoPort + "/";
+ Integer i = regDistribution.get(urlRegionServer);
+ if (null == i) i = new Integer(0);
+ regDistribution.put(urlRegionServer, i+1);
}
}
%>
@@ -170,9 +182,21 @@
%>
<%= Bytes.toStringBinary(regionInfo.getStartKey())%> |
<%= Bytes.toStringBinary(regionInfo.getEndKey())%> |
+ <%= req%> |
<% } %>
+Regions by Region Server
+| Region Server | Region Count |
+<%
+ for (Map.Entry rdEntry : regDistribution.entrySet()) {
+%>
+
+ | <%= rdEntry.getKey()%> |
+ <%= rdEntry.getValue()%> |
+
+<% } %>
+
<% }
} catch(Exception ex) {
ex.printStackTrace(System.err);