From fa7c7e5312465962d409ba52232d3c67a8218941 Mon Sep 17 00:00:00 2001 From: Xuesen Liang Date: Wed, 20 Apr 2022 18:00:16 +0800 Subject: [PATCH 1/2] HBASE-26962: Add mob info in web UI --- .../hbase-webapps/regionserver/region.jsp | 49 ++++++++++++++++++- 1 file changed, 48 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 382783ea4bad..d741dc190bd0 100644 --- a/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/regionserver/region.jsp @@ -21,8 +21,13 @@ 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.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 +85,49 @@

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

- <% } + + <% if (store instanceof HMobStore) { %> +

MOB Files

+ + + + + + + + <% + int mobCnt = 0; + for (StoreFile sf : storeFiles) { + try { + byte[] value = ((HStoreFile)sf).getMetadataValue(HStoreFile.MOB_FILE_REFS); + if (value == null) { + continue; + } + + Collection 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); %> + + + + + + + + <% } + } catch (Exception e) { %> + + + + <% } + } %> + +

<%= mobCnt %> MobFile(s) in set.

+
MOB FileSize (MB)Modification time
<%= mobPath %><%= status.getLen() / 1024 / 1024 %><%= new Date(status.getModificationTime()) %>
<%= e %>
+ <% } + } }%> From 053f344b4beedeaf02b80d76ebfdc7f3b228b61a Mon Sep 17 00:00:00 2001 From: Xuesen Liang Date: Fri, 22 Apr 2022 14:27:03 +0800 Subject: [PATCH 2/2] HBASE-26962: encode mob path --- .../main/resources/hbase-webapps/regionserver/region.jsp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 d741dc190bd0..72bc638202f1 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,13 @@ */ --%> <%@ 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" @@ -108,10 +110,12 @@ mobCnt += fileNames.size(); for (String fileName : fileNames) { Path mobPath = new Path(((HMobStore) store).getPath(), fileName); - FileStatus status = rs.getFileSystem().getFileStatus(mobPath); %> + FileStatus status = rs.getFileSystem().getFileStatus(mobPath); + String mobPathStr = mobPath.toString(); + String encodedStr = URLEncoder.encode(mobPathStr, HConstants.UTF8_ENCODING); %> - <%= mobPath %> + <%= mobPathStr%> <%= status.getLen() / 1024 / 1024 %> <%= new Date(status.getModificationTime()) %>