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 382783ea4bad..27c9b29c8bab 100644 --- a/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp @@ -21,21 +21,26 @@ import="java.util.Collection" import="java.util.Date" import="java.util.List" + import="org.apache.hadoop.fs.FileSystem" + import="org.apache.hadoop.hbase.client.RegionInfo" import="org.apache.hadoop.hbase.client.RegionInfoDisplay" import="org.apache.hadoop.hbase.regionserver.HRegionServer" - import="org.apache.hadoop.hbase.regionserver.Region" - import="org.apache.hadoop.hbase.regionserver.Store" - import="org.apache.hadoop.hbase.regionserver.StoreFile" + import="org.apache.hadoop.hbase.regionserver.HStoreFile" + import="org.apache.hadoop.hbase.regionserver.HRegion" + import="org.apache.hadoop.hbase.regionserver.HStore" %> <% String regionName = request.getParameter("name"); HRegionServer rs = (HRegionServer) getServletContext().getAttribute(HRegionServer.REGIONSERVER); + FileSystem fs = rs.getFileSystem(); - Region region = rs.getRegion(regionName); + HRegion region = rs.getRegion(regionName); String displayName; + boolean isReplicaRegion = false; if (region != null) { displayName = RegionInfoDisplay.getRegionNameAsStringForDisplay(region.getRegionInfo(), rs.getConfiguration()); + isReplicaRegion = region.getRegionInfo().getReplicaId() > RegionInfo.DEFAULT_REPLICA_ID; } else { displayName = "region {" + regionName + "} is not currently online on this region server"; } @@ -53,10 +58,10 @@ <% if(region != null) { // - List stores = region.getStores(); - for (Store store : stores) { + List stores = region.getStores(); + for (HStore store : stores) { String cf = store.getColumnFamilyName(); - Collection storeFiles = store.getStorefiles(); %> + Collection storeFiles = store.getStorefiles(); %>

Column Family: <%= cf %>

@@ -70,15 +75,18 @@ Size (MB) Modification time - <% for(StoreFile sf : storeFiles) { %> + <% int count = 0; + for(HStoreFile sf : storeFiles) { + if (isReplicaRegion && !fs.exists(sf.getPath())) continue; + count++; %> <%= sf.getPath() %> - <%= (int) (rs.getFileSystem().getLength(sf.getPath()) / 1024 / 1024) %> + <%= (int) (fs.getLength(sf.getPath()) / 1024 / 1024) %> <%= new Date(sf.getModificationTimestamp()) %> <% } %> -

<%= storeFiles.size() %> StoreFile(s) in set.

+

<%= count %> StoreFile(s) in set. <%= isReplicaRegion ? "The information about storefile(s) may not up-to-date because it's not the primary region." : "" %>

<% } }%>