You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2020/08/02 18:30:31 UTC

[hbase] branch branch-1 updated: HBASE-24704 Make Table Schema easier to view with multiple families

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

vjasani pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-1 by this push:
     new 9e975d1  HBASE-24704 Make Table Schema easier to view with multiple families
9e975d1 is described below

commit 9e975d1b980d0ef6968ed945f21db1c0016193c5
Author: Zheng Wang <18...@qq.com>
AuthorDate: Sun Aug 2 23:50:51 2020 +0530

    HBASE-24704 Make Table Schema easier to view with multiple families
    
    Closes #2185
    
    Signed-off-by: Viraj Jasani <vj...@apache.org>
---
 .../main/resources/hbase-webapps/master/table.jsp  | 54 +++++++++++++---------
 1 file changed, 31 insertions(+), 23 deletions(-)

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 3d5e230..1f160ea 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/table.jsp
@@ -27,6 +27,8 @@
   import="java.util.List"
   import="java.util.LinkedHashMap"
   import="java.util.Map"
+  import="java.util.Set"
+  import="java.util.HashSet"
   import="java.util.Collections"
   import="java.util.Collection"
   import="org.apache.commons.lang.StringEscapeUtils"
@@ -45,6 +47,7 @@
   import="org.apache.hadoop.hbase.zookeeper.MetaTableLocator"
   import="org.apache.hadoop.hbase.util.Bytes"
   import="org.apache.hadoop.hbase.util.FSUtils"
+  import="org.apache.hadoop.hbase.io.ImmutableBytesWritable"
   import="org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest"
   import="org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState"
   import="org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos"
@@ -417,40 +420,45 @@ if ( fqtn != null ) {
 </table>
 <h2>Table Schema</h2>
 <table class="table table-striped">
+<%
+  Collection<HColumnDescriptor> families = table.getTableDescriptor().getFamilies();
+  Set<ImmutableBytesWritable> familyKeySet = new HashSet<>();
+  for (HColumnDescriptor family: families) {
+    familyKeySet.addAll(family.getValues().keySet());
+  }
+%>
   <tr>
-      <th>Column Family Name</th>
-      <th></th>
-  </tr>
-  <%
-    Collection<HColumnDescriptor> families = table.getTableDescriptor().getFamilies();
+    <th>Property \ Column Family Name</th>
+    <%
     for (HColumnDescriptor family: families) {
-  %>
-  <tr>
-    <td><%= StringEscapeUtils.escapeHtml(family.getNameAsString()) %></td>
-    <td>
-    <table class="table table-striped">
-      <tr>
-       <th>Property</th>
-       <th>Value</th>       
-      </tr>
+    %>
+    <th>
+      <%= StringEscapeUtils.escapeHtml(family.getNameAsString()) %>
+    </th>
+    <% } %>
+  </tr>
     <%
-    Map<ImmutableBytesWritable, ImmutableBytesWritable> familyValues = family.getValues();
-    for (ImmutableBytesWritable familyKey: familyValues.keySet()) {
-      final ImmutableBytesWritable familyValue = familyValues.get(familyKey);
+    for (ImmutableBytesWritable familyKey: familyKeySet) {
     %>
       <tr>
         <td>
           <%= StringEscapeUtils.escapeHtml(Bytes.toString(familyKey.get(), familyKey.getOffset(), familyKey.getLength())) %>
-		</td>
+        </td>
+        <%
+        for (HColumnDescriptor family: families) {
+          String familyValueStr = "-";
+          Map<ImmutableBytesWritable, ImmutableBytesWritable> familyValues = family.getValues();
+          if(familyValues.containsKey(familyKey)){
+            final ImmutableBytesWritable familyValue = familyValues.get(familyKey);
+            familyValueStr = Bytes.toString(familyValue.get(), familyValue.getOffset(), familyValue.getLength());
+          }
+        %>
         <td>
-          <%= StringEscapeUtils.escapeHtml(Bytes.toString(familyValue.get(), familyValue.getOffset(), familyValue.getLength())) %>
+          <%= StringEscapeUtils.escapeHtml(familyValueStr) %>
         </td>
+        <% } %>
       </tr>
     <% } %>
-    </table>
-    </td>
-  </tr>
-  <% } %>
 </table>
 <%
   long totalReadReq = 0;