You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2008/05/16 00:10:50 UTC

svn commit: r656868 [10/10] - in /hadoop/hbase/trunk: ./ src/java/org/apache/hadoop/hbase/ src/java/org/apache/hadoop/hbase/client/ src/java/org/apache/hadoop/hbase/filter/ src/java/org/apache/hadoop/hbase/hql/ src/java/org/apache/hadoop/hbase/io/ src/...

Modified: hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMergeTool.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMergeTool.java?rev=656868&r1=656867&r2=656868&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMergeTool.java (original)
+++ hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMergeTool.java Thu May 15 15:10:47 2008
@@ -42,11 +42,11 @@
 /** Test stand alone merge tool that can merge arbitrary regions */
 public class TestMergeTool extends HBaseTestCase {
   static final Log LOG = LogFactory.getLog(TestMergeTool.class);
-  protected static final Text COLUMN_NAME = new Text("contents:");
+  protected static final byte [] COLUMN_NAME = Bytes.toBytes("contents:");
   private final HRegionInfo[] sourceRegions = new HRegionInfo[5];
   private final HRegion[] regions = new HRegion[5];
   private HTableDescriptor desc;
-  private Text[][] rows;
+  private byte [][][] rows;
   private Path rootdir = null;
   private MiniDFSCluster dfsCluster = null;
   private FileSystem fs;
@@ -59,45 +59,45 @@
     // Create table description
     
     this.desc = new HTableDescriptor("TestMergeTool");
-    this.desc.addFamily(new HColumnDescriptor(COLUMN_NAME.toString()));
+    this.desc.addFamily(new HColumnDescriptor(COLUMN_NAME));
 
     /*
      * Create the HRegionInfos for the regions.
      */
     
     // Region 0 will contain the key range [row_0200,row_0300)
-    sourceRegions[0] =
-      new HRegionInfo(this.desc, new Text("row_0200"), new Text("row_0300"));
+    sourceRegions[0] = new HRegionInfo(this.desc, Bytes.toBytes("row_0200"),
+      Bytes.toBytes("row_0300"));
     
     // Region 1 will contain the key range [row_0250,row_0400) and overlaps
     // with Region 0
     sourceRegions[1] =
-      new HRegionInfo(this.desc, new Text("row_0250"), new Text("row_0400"));
+      new HRegionInfo(this.desc, Bytes.toBytes("row_0250"), Bytes.toBytes("row_0400"));
     
     // Region 2 will contain the key range [row_0100,row_0200) and is adjacent
     // to Region 0 or the region resulting from the merge of Regions 0 and 1
     sourceRegions[2] =
-      new HRegionInfo(this.desc, new Text("row_0100"), new Text("row_0200"));
+      new HRegionInfo(this.desc, Bytes.toBytes("row_0100"), Bytes.toBytes("row_0200"));
     
     // Region 3 will contain the key range [row_0500,row_0600) and is not
     // adjacent to any of Regions 0, 1, 2 or the merged result of any or all
     // of those regions
     sourceRegions[3] =
-      new HRegionInfo(this.desc, new Text("row_0500"), new Text("row_0600"));
+      new HRegionInfo(this.desc, Bytes.toBytes("row_0500"), Bytes.toBytes("row_0600"));
     
     // Region 4 will have empty start and end keys and overlaps all regions.
     sourceRegions[4] =
-      new HRegionInfo(this.desc, HConstants.EMPTY_TEXT, HConstants.EMPTY_TEXT);
+      new HRegionInfo(this.desc, HConstants.EMPTY_BYTE_ARRAY, HConstants.EMPTY_BYTE_ARRAY);
     
     /*
      * Now create some row keys
      */
-    this.rows = new Text[5][];
-    this.rows[0] = new Text[] { new Text("row_0210"), new Text("row_0280") };
-    this.rows[1] = new Text[] { new Text("row_0260"), new Text("row_0350") };
-    this.rows[2] = new Text[] { new Text("row_0110"), new Text("row_0175") };
-    this.rows[3] = new Text[] { new Text("row_0525"), new Text("row_0560") };
-    this.rows[4] = new Text[] { new Text("row_0050"), new Text("row_1000") };
+    this.rows = new byte [5][][];
+    this.rows[0] = Bytes.toByteArrays(new Text[] { new Text("row_0210"), new Text("row_0280") });
+    this.rows[1] = Bytes.toByteArrays(new Text[] { new Text("row_0260"), new Text("row_0350") });
+    this.rows[2] = Bytes.toByteArrays(new Text[] { new Text("row_0110"), new Text("row_0175") });
+    this.rows[3] = Bytes.toByteArrays(new Text[] { new Text("row_0525"), new Text("row_0560") });
+    this.rows[4] = Bytes.toByteArrays(new Text[] { new Text("row_0050"), new Text("row_1000") });
     
     // Start up dfs
     this.dfsCluster = new MiniDFSCluster(conf, 2, true, (String[])null);
@@ -122,21 +122,17 @@
          * Insert data
          */
         for (int j = 0; j < rows[i].length; j++) {
-          Text row = rows[i][j];
+          byte [] row = rows[i][j];
           BatchUpdate b = new BatchUpdate(row);
-          b.put(COLUMN_NAME,
-              new ImmutableBytesWritable(
-                  row.getBytes(), 0, row.getLength()
-              ).get()
-          );
+          b.put(COLUMN_NAME, new ImmutableBytesWritable(row).get());
           regions[i].batchUpdate(b);
         }
       }
       // Create root region
-      HRegion root = HRegion.createHRegion(HRegionInfo.rootRegionInfo,
+      HRegion root = HRegion.createHRegion(HRegionInfo.ROOT_REGIONINFO,
           this.rootdir, this.conf);
       // Create meta region
-      HRegion meta = HRegion.createHRegion(HRegionInfo.firstMetaRegionInfo,
+      HRegion meta = HRegion.createHRegion(HRegionInfo.FIRST_META_REGIONINFO,
           this.rootdir, this.conf);
       // Insert meta into root region
       HRegion.addRegionToMETA(root, meta);
@@ -178,7 +174,7 @@
     Merge merger = new Merge(this.conf);
     LOG.info(msg);
     int errCode = ToolRunner.run(merger,
-      new String[] {this.desc.getName().toString(), regionName1, regionName2}
+      new String[] {this.desc.getNameAsString(), regionName1, regionName2}
     );
     assertTrue("'" + msg + "' failed", errCode == 0);
     HRegionInfo mergedInfo = merger.getMergedHRegionInfo();
@@ -199,8 +195,7 @@
       for (int j = 0; j < rows[i].length; j++) {
         byte[] bytes = merged.get(rows[i][j], COLUMN_NAME).getValue();
         assertNotNull(rows[i][j].toString(), bytes);
-        Text value = new Text(bytes);
-        assertTrue(value.equals(rows[i][j]));
+        assertTrue(Bytes.equals(bytes, rows[i][j]));
       }
     }
   }
@@ -216,8 +211,7 @@
       for (int j = 0; j < rows[i].length; j++) {
         byte[] bytes = regions[i].get(rows[i][j], COLUMN_NAME).getValue();
         assertNotNull(bytes);
-        Text value = new Text(bytes);
-        assertTrue(value.equals(rows[i][j]));
+        assertTrue(Bytes.equals(bytes, rows[i][j]));
       }
       // Close the region and delete the log
       regions[i].close();
@@ -232,23 +226,23 @@
     try {
        // Merge Region 0 and Region 1
       HRegion merged = mergeAndVerify("merging regions 0 and 1",
-        this.sourceRegions[0].getRegionName().toString(),
-        this.sourceRegions[1].getRegionName().toString(), log, 2);
+        this.sourceRegions[0].getRegionNameAsString(),
+        this.sourceRegions[1].getRegionNameAsString(), log, 2);
 
       // Merge the result of merging regions 0 and 1 with region 2
       merged = mergeAndVerify("merging regions 0+1 and 2",
-        merged.getRegionInfo().getRegionName().toString(),
-        this.sourceRegions[2].getRegionName().toString(), log, 3);
+        merged.getRegionInfo().getRegionNameAsString(),
+        this.sourceRegions[2].getRegionNameAsString(), log, 3);
 
       // Merge the result of merging regions 0, 1 and 2 with region 3
       merged = mergeAndVerify("merging regions 0+1+2 and 3",
-        merged.getRegionInfo().getRegionName().toString(),
-        this.sourceRegions[3].getRegionName().toString(), log, 4);
+        merged.getRegionInfo().getRegionNameAsString(),
+        this.sourceRegions[3].getRegionNameAsString(), log, 4);
       
       // Merge the result of merging regions 0, 1, 2 and 3 with region 4
       merged = mergeAndVerify("merging regions 0+1+2+3 and 4",
-        merged.getRegionInfo().getRegionName().toString(),
-        this.sourceRegions[4].getRegionName().toString(), log, rows.length);
+        merged.getRegionInfo().getRegionNameAsString(),
+        this.sourceRegions[4].getRegionNameAsString(), log, rows.length);
     } finally {
       log.closeAndDelete();
     }

Modified: hadoop/hbase/trunk/src/webapps/master/master.jsp
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/webapps/master/master.jsp?rev=656868&r1=656867&r2=656868&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/webapps/master/master.jsp (original)
+++ hadoop/hbase/trunk/src/webapps/master/master.jsp Thu May 15 15:10:47 2008
@@ -1,6 +1,7 @@
 <%@ page contentType="text/html;charset=UTF-8"
   import="java.util.*"
   import="org.apache.hadoop.io.Text"
+  import="org.apache.hadoop.hbase.util.Bytes"
   import="org.apache.hadoop.hbase.master.HMaster"
   import="org.apache.hadoop.hbase.HConstants"
   import="org.apache.hadoop.hbase.master.MetaRegion"
@@ -16,7 +17,7 @@
   HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
   HBaseConfiguration conf = master.getConfiguration();
   HServerAddress rootLocation = master.getRootRegionLocation();
-  Map<Text, MetaRegion> onlineRegions = master.getOnlineMetaRegions();
+  Map<byte [], MetaRegion> onlineRegions = master.getOnlineMetaRegions();
   Map<String, HServerInfo> serverToServerInfos =
     master.getServersToServerInfo();
   int interval = conf.getInt("hbase.regionserver.msginterval", 3000)/1000;
@@ -53,10 +54,10 @@
   if (rootLocation != null) { %>
 <table>
 <tr><th>Table</th><th>Description</th></tr>
-<tr><td><a href=/table.jsp?name=<%= HConstants.ROOT_TABLE_NAME.toString() %>><%= HConstants.ROOT_TABLE_NAME.toString() %></a></td><td>The -ROOT- table holds references to all .META. regions.</td></tr>
+<tr><td><a href=/table.jsp?name=<%= Bytes.toString(HConstants.ROOT_TABLE_NAME) %>><%= Bytes.toString(HConstants.ROOT_TABLE_NAME) %></a></td><td>The -ROOT- table holds references to all .META. regions.</td></tr>
 <%
     if (onlineRegions != null && onlineRegions.size() > 0) { %>
-<tr><td><a href=/table.jsp?name=<%= HConstants.META_TABLE_NAME.toString() %>><%= HConstants.META_TABLE_NAME.toString() %></a></td><td>The .META. table holds references to all User Table regions</td></tr>
+<tr><td><a href=/table.jsp?name=<%= Bytes.toString(HConstants.META_TABLE_NAME) %>><%= Bytes.toString(HConstants.META_TABLE_NAME) %></a></td><td>The .META. table holds references to all User Table regions</td></tr>
   
 <%  } %>
 </table>
@@ -68,7 +69,7 @@
 <table>
 <tr><th>Table</th><th>Description</th></tr>
 <%   for(HTableDescriptor htDesc : tables ) { %>
-<tr><td><a href=/table.jsp?name=<%= htDesc.getName() %>><%= htDesc.getName() %></a> </td><td><%= htDesc.toString() %></td></tr>
+<tr><td><a href=/table.jsp?name=<%= htDesc.getNameAsString() %>><%= htDesc.getNameAsString() %></a> </td><td><%= htDesc.toString() %></td></tr>
 <%   }  %>
 <p> <%= tables.length %> table(s) in set.</p>
 </table>

Modified: hadoop/hbase/trunk/src/webapps/master/table.jsp
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/webapps/master/table.jsp?rev=656868&r1=656867&r2=656868&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/webapps/master/table.jsp (original)
+++ hadoop/hbase/trunk/src/webapps/master/table.jsp Thu May 15 15:10:47 2008
@@ -7,12 +7,13 @@
   import="org.apache.hadoop.hbase.HServerInfo"
   import="org.apache.hadoop.hbase.master.HMaster" 
   import="org.apache.hadoop.hbase.master.MetaRegion"
+  import="org.apache.hadoop.hbase.util.Bytes"
   import="java.io.IOException"
   import="java.util.Map"
   import="org.apache.hadoop.hbase.HConstants"%><%
   HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
   String tableName = request.getParameter("name");
-  HTable table = new HTable(master.getConfiguration(), new Text(tableName));
+  HTable table = new HTable(master.getConfiguration(), tableName);
   Map<String, HServerInfo> serverToServerInfos =
 	    master.getServersToServerInfo();
   String tableHeader = "<table><tr><th>Name</th><th>Region Server</th><th>Encoded Name</th><th>Start Key</th><th>End Key</th></tr>";
@@ -32,15 +33,15 @@
 <p id="links_menu"><a href="/master.jsp">Master</a>, <a href="/logs/">Local logs</a>, <a href="/stacks">Thread Dump</a>, <a href="/logLevel">Log Level</a></p>
 <hr id="head_rule" />
 
-<%if(tableName.equals(HConstants.ROOT_TABLE_NAME.toString())) {%>
+<%if(tableName.equals(Bytes.toString(HConstants.ROOT_TABLE_NAME))) {%>
 <%= tableHeader %>
 <%  int infoPort = serverToServerInfos.get(rootLocation.getBindAddress()+":"+rootLocation.getPort()).getInfoPort();
-    String url = "http://" + rootLocation.getBindAddress() + ":" + infoPort + "/";%> 
+    String url = "http://" + rootLocation.getHostname() + ":" + infoPort + "/";%> 
 <tr><td><%= tableName %></td><td><a href="<%= url %>"><%= rootLocation.getHostname() %>:<%= rootLocation.getPort() %></a></td><td>-</td><td></td><td>-</td></tr>
 </table>
-<%} else if(tableName.equals(HConstants.META_TABLE_NAME.toString())) { %>
+<%} else if(tableName.equals(Bytes.toString(HConstants.META_TABLE_NAME))) { %>
 <%= tableHeader %>
-<%  Map<Text, MetaRegion> onlineRegions = master.getOnlineMetaRegions();
+<%  Map<byte [], MetaRegion> onlineRegions = master.getOnlineMetaRegions();
     for (MetaRegion meta: onlineRegions.values()) {
       int infoPort = serverToServerInfos.get(meta.getServer().getBindAddress()+":"+meta.getServer().getPort()).getInfoPort();
       String url = "http://" + meta.getServer().getHostname() + ":" + infoPort + "/";%> 
@@ -59,7 +60,7 @@
           System.out.println(hriEntry.getValue().getHostname()+":"+hriEntry.getValue().getPort());
           int infoPort = serverToServerInfos.get(hriEntry.getValue().getBindAddress()+":"+hriEntry.getValue().getPort()).getInfoPort();
           String url = "http://" + hriEntry.getValue().getHostname().toString() + ":" + infoPort + "/";  %>
-<tr><td><%= hriEntry.getKey().getRegionName()%></td><td><a href="<%= url %>"><%= hriEntry.getValue().getHostname() %>:<%= hriEntry.getValue().getPort() %></a></td>
+<tr><td><%= hriEntry.getKey().getRegionNameAsString()%></td><td><a href="<%= url %>"><%= hriEntry.getValue().getHostname() %>:<%= hriEntry.getValue().getPort() %></a></td>
     <td><%= hriEntry.getKey().getEncodedName()%></td> <td><%= hriEntry.getKey().getStartKey()%></td>
     <td><%= hriEntry.getKey().getEndKey()%></td></tr>
 <%      } %>

Modified: hadoop/hbase/trunk/src/webapps/regionserver/regionserver.jsp
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/webapps/regionserver/regionserver.jsp?rev=656868&r1=656867&r2=656868&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/webapps/regionserver/regionserver.jsp (original)
+++ hadoop/hbase/trunk/src/webapps/regionserver/regionserver.jsp Thu May 15 15:10:47 2008
@@ -3,12 +3,13 @@
   import="org.apache.hadoop.io.Text"
   import="org.apache.hadoop.hbase.regionserver.HRegionServer"
   import="org.apache.hadoop.hbase.regionserver.HRegion"
+  import="org.apache.hadoop.hbase.util.Bytes"
   import="org.apache.hadoop.hbase.HConstants"
   import="org.apache.hadoop.hbase.HServerInfo"
   import="org.apache.hadoop.hbase.HRegionInfo" %><%
   HRegionServer regionServer = (HRegionServer)getServletContext().getAttribute(HRegionServer.REGIONSERVER);
   HServerInfo serverInfo = regionServer.getServerInfo();
-  Map<Text, HRegion> onlineRegions = regionServer.getOnlineRegions();
+  Collection<HRegion> onlineRegions = regionServer.getOnlineRegions();
   int interval = regionServer.getConfiguration().getInt("hbase.regionserver.msginterval", 3000)/1000;
 %><?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
@@ -37,9 +38,9 @@
 <% if (onlineRegions != null && onlineRegions.size() > 0) { %>
 <table>
 <tr><th>Region Name</th><th>Encoded Name</th><th>Start Key</th><th>End Key</th></tr>
-<%   for (HRegion r: onlineRegions.values()) { %>
-<tr><td><%= r.getRegionName().toString() %></td><td><%= r.getRegionInfo().getEncodedName() %></td>
-    <td><%= r.getStartKey().toString() %></td><td><%= r.getEndKey().toString() %></td></tr>
+<%   for (HRegion r: onlineRegions) { %>
+<tr><td><%= Bytes.toString(r.getRegionName()) %></td><td><%= r.getRegionInfo().getEncodedName() %></td>
+    <td><%= Bytes.toString(r.getStartKey()) %></td><td><%= Bytes.toString(r.getEndKey()) %></td></tr>
 <%   } %>
 </table>
 <p>Region names are made of the containing table's name, a comma,