You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/10/11 19:43:12 UTC
svn commit: r1181940 - in /hbase/branches/0.89/src/main:
java/org/apache/hadoop/hbase/HColumnDescriptor.java
java/org/apache/hadoop/hbase/HTableDescriptor.java
resources/hbase-webapps/master/master.jsp
resources/hbase-webapps/master/tablesDetailed.jsp
Author: nspiegelberg
Date: Tue Oct 11 17:43:12 2011
New Revision: 1181940
URL: http://svn.apache.org/viewvc?rev=1181940&view=rev
Log:
Modify the webUI so that default values of column families are not shown
Summary:
Display a column family attribute only if it has a non-default value.
Display all the default values below.
Test Plan:
tested on dev cluster
Link to dev server with these changes:
http://***:60010/master.jsp
Reviewed By: nspiegelberg
Reviewers: nspiegelberg
Commenters: kannan
CC: hbase@lists, kannan, nspiegelberg, nileema
Differential Revision: 307041
Added:
hbase/branches/0.89/src/main/resources/hbase-webapps/master/tablesDetailed.jsp
Modified:
hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
hbase/branches/0.89/src/main/resources/hbase-webapps/master/master.jsp
Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java?rev=1181940&r1=1181939&r2=1181940&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java Tue Oct 11 17:43:12 2011
@@ -554,6 +554,46 @@ public class HColumnDescriptor implement
return s.toString();
}
+ public String toStringCustomizedValues() {
+ Map<String, String> defaults = getDefaultValues();
+ StringBuilder s = new StringBuilder();
+ s.append('{');
+ s.append(HConstants.NAME);
+ s.append(" => '");
+ s.append(Bytes.toString(name));
+ s.append("'");
+ for (Map.Entry<ImmutableBytesWritable, ImmutableBytesWritable> e:
+ values.entrySet()) {
+ String key = Bytes.toString(e.getKey().get());
+ String value = Bytes.toString(e.getValue().get());
+ if(defaults.get(key) == null || !defaults.get(key).equalsIgnoreCase(value)) {
+ s.append(", ");
+ s.append(key);
+ s.append(" => '");
+ s.append(value);
+ s.append("'");
+ }
+ }
+ s.append('}');
+ return s.toString();
+ }
+
+
+ public static Map<String, String>getDefaultValues() {
+ Map<String, String> defaultValues = new HashMap<String, String>();
+
+ defaultValues.put(BLOOMFILTER, DEFAULT_BLOOMFILTER);
+ defaultValues.put(REPLICATION_SCOPE, String.valueOf(DEFAULT_REPLICATION_SCOPE));
+ defaultValues.put(HConstants.VERSIONS, String.valueOf(DEFAULT_VERSIONS));
+ defaultValues.put(COMPRESSION, DEFAULT_COMPRESSION);
+ defaultValues.put(TTL, String.valueOf(DEFAULT_TTL));
+ defaultValues.put(BLOCKSIZE, String.valueOf(DEFAULT_BLOCKSIZE));
+ defaultValues.put(HConstants.IN_MEMORY, String.valueOf(DEFAULT_IN_MEMORY));
+ defaultValues.put(BLOOMFILTER_ERRORRATE, String.valueOf(DEFAULT_BLOOMFILTER_ERROR_RATE));
+ defaultValues.put(BLOCKCACHE, String.valueOf(DEFAULT_BLOCKCACHE));
+ return defaultValues;
+ }
+
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java?rev=1181940&r1=1181939&r2=1181940&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java Tue Oct 11 17:43:12 2011
@@ -502,6 +502,48 @@ public class HTableDescriptor implements
return s.toString();
}
+ public String toStringCustomizedValues() {
+ StringBuilder s = new StringBuilder();
+ s.append('{');
+ s.append(HConstants.NAME);
+ s.append(" => '");
+ s.append(Bytes.toString(name));
+ s.append("'");
+ for (Map.Entry<ImmutableBytesWritable, ImmutableBytesWritable> e:
+ values.entrySet()) {
+ String key = Bytes.toString(e.getKey().get());
+ String value = Bytes.toString(e.getValue().get());
+ if (key == null) {
+ continue;
+ }
+ String upperCase = key.toUpperCase();
+ if (upperCase.equals(IS_ROOT) || upperCase.equals(IS_META)) {
+ // Skip. Don't bother printing out read-only values if false.
+ if (value.toLowerCase().equals(Boolean.FALSE.toString())) {
+ continue;
+ }
+ }
+ s.append(", ");
+ s.append(Bytes.toString(e.getKey().get()));
+ s.append(" => '");
+ s.append(Bytes.toString(e.getValue().get()));
+ s.append("'");
+ }
+ s.append(", ");
+ s.append(FAMILIES);
+ s.append(" => [");
+ int size = families.values().size();
+ int i = 0;
+ for(HColumnDescriptor hcd : families.values()) {
+ s.append(hcd.toStringCustomizedValues());
+ i++;
+ if( i != size)
+ s.append(", ");
+ }
+ s.append("]}");
+ return s.toString();
+ }
+
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
Modified: hbase/branches/0.89/src/main/resources/hbase-webapps/master/master.jsp
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/resources/hbase-webapps/master/master.jsp?rev=1181940&r1=1181939&r2=1181940&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/resources/hbase-webapps/master/master.jsp (original)
+++ hbase/branches/0.89/src/main/resources/hbase-webapps/master/master.jsp Tue Oct 11 17:43:12 2011
@@ -10,7 +10,8 @@
import="org.apache.hadoop.hbase.client.HBaseAdmin"
import="org.apache.hadoop.hbase.HServerInfo"
import="org.apache.hadoop.hbase.HServerAddress"
- import="org.apache.hadoop.hbase.HTableDescriptor" %><%
+ import="org.apache.hadoop.hbase.HTableDescriptor"
+ import="org.apache.hadoop.hbase.HColumnDescriptor" %><%
HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
Configuration conf = master.getConfiguration();
HServerAddress rootLocation = master.getRegionManager().getRootRegionLocation();
@@ -123,11 +124,11 @@
<% if (showFragmentation) { %>
<td align="center"><%= frags.get(htDesc.getNameAsString()) != null ? frags.get(htDesc.getNameAsString()).intValue() + "%" : "n/a" %></td>
<% } %>
- <td><%= htDesc.toString() %></td>
+ <td><%= htDesc.toStringCustomizedValues() %></td>
</tr>
<% } %>
-<p> <%= tables.length %> table(s) in set.</p>
+<p> <%= tables.length %> table(s) in set. [<a href=tablesDetailed.jsp>Details</a>]</p>
</table>
<% } %>
Added: hbase/branches/0.89/src/main/resources/hbase-webapps/master/tablesDetailed.jsp
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/resources/hbase-webapps/master/tablesDetailed.jsp?rev=1181940&view=auto
==============================================================================
--- hbase/branches/0.89/src/main/resources/hbase-webapps/master/tablesDetailed.jsp (added)
+++ hbase/branches/0.89/src/main/resources/hbase-webapps/master/tablesDetailed.jsp Tue Oct 11 17:43:12 2011
@@ -0,0 +1,40 @@
+<%@ page contentType="text/html;charset=UTF-8"
+ import="java.util.*"
+ import="org.apache.hadoop.util.StringUtils"
+ import="org.apache.hadoop.conf.Configuration"
+ import="org.apache.hadoop.hbase.master.HMaster"
+ import="org.apache.hadoop.hbase.client.HBaseAdmin"
+ import="org.apache.hadoop.hbase.HTableDescriptor" %><%
+ HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
+ Configuration conf = master.getConfiguration();
+%>
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
+<title>HBase Master: <%= master.getMasterAddress().getHostname()%>:<%= master.getMasterAddress().getPort() %></title>
+<link rel="stylesheet" type="text/css" href="/static/hbase.css" />
+</head>
+<body>
+
+<h2>User Tables</h2>
+<% HTableDescriptor[] tables = new HBaseAdmin(conf).listTables();
+ if(tables != null && tables.length > 0) { %>
+<table>
+<tr>
+ <th>Table</th>
+ <th>Description</th>
+</tr>
+<% for(HTableDescriptor htDesc : tables ) { %>
+<tr>
+ <td><%= htDesc.getNameAsString() %></td>
+ <td><%= htDesc.toString() %></td>
+</tr>
+<% } %>
+
+<p> <%= tables.length %> table(s) in set.</p>
+</table>
+<% } %>
+</body>
+</html>