You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2022/06/02 15:53:08 UTC

[hbase] branch master updated: HBASE-26962: Add mob info in web UI (#4359)

This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new d03004060da HBASE-26962: Add mob info in web UI (#4359)
d03004060da is described below

commit d03004060da4084ff858d999faca6d8a4244d8a5
Author: liangxs <li...@gmail.com>
AuthorDate: Thu Jun 2 23:53:03 2022 +0800

    HBASE-26962: Add mob info in web UI (#4359)
    
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../hbase-webapps/regionserver/region.jsp          | 53 +++++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)

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 382783ea4ba..72bc638202f 100644
--- a/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp
@@ -18,11 +18,18 @@
  */
 --%>
 <%@ page contentType="text/html;charset=UTF-8"
+  import="java.net.URLEncoder"
   import="java.util.Collection"
   import="java.util.Date"
   import="java.util.List"
+  import="org.apache.hadoop.fs.FileStatus"
+  import="org.apache.hadoop.fs.Path"
+  import="org.apache.hadoop.hbase.HConstants"
   import="org.apache.hadoop.hbase.client.RegionInfoDisplay"
+  import="org.apache.hadoop.hbase.mob.MobUtils"
   import="org.apache.hadoop.hbase.regionserver.HRegionServer"
+  import="org.apache.hadoop.hbase.regionserver.HMobStore"
+  import="org.apache.hadoop.hbase.regionserver.HStoreFile"
   import="org.apache.hadoop.hbase.regionserver.Region"
   import="org.apache.hadoop.hbase.regionserver.Store"
   import="org.apache.hadoop.hbase.regionserver.StoreFile"
@@ -80,7 +87,51 @@
 
          <p> <%= storeFiles.size() %> StoreFile(s) in set.</p>
          </table>
-   <%  }
+
+       <% if (store instanceof HMobStore) { %>
+       <h4>MOB Files</h4>
+       <table class="table table-striped">
+         <tr>
+           <th>MOB File</th>
+           <th>Size (MB)</th>
+           <th>Modification time</th>
+         </tr>
+
+         <%
+         int mobCnt = 0;
+         for (StoreFile sf : storeFiles) {
+           try {
+             byte[] value = ((HStoreFile)sf).getMetadataValue(HStoreFile.MOB_FILE_REFS);
+             if (value == null) {
+               continue;
+             }
+
+             Collection<String> fileNames = MobUtils.deserializeMobFileRefs(value).build().values();
+             mobCnt += fileNames.size();
+             for (String fileName : fileNames) {
+               Path mobPath = new Path(((HMobStore) store).getPath(), fileName);
+               FileStatus status = rs.getFileSystem().getFileStatus(mobPath);
+               String mobPathStr = mobPath.toString();
+               String encodedStr = URLEncoder.encode(mobPathStr, HConstants.UTF8_ENCODING); %>
+
+               <tr>
+                 <td><a href="storeFile.jsp?name=<%= encodedStr%>"><%= mobPathStr%></a></td>
+                 <td><%= status.getLen() / 1024 / 1024 %></td>
+                 <td><%= new Date(status.getModificationTime()) %></td>
+               </tr>
+
+             <% }
+           } catch (Exception e) { %>
+             <tr>
+              <td><%= e %></td>
+             </tr>
+           <% }
+         } %>
+
+         <p> <%= mobCnt %> MobFile(s) in set.</p>
+       </table>
+       <% }
+     }
    }%>
 </div>