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 2010/07/13 21:21:36 UTC
svn commit: r963826 - in /hbase/trunk: CHANGES.txt
src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
src/main/java/org/apache/hadoop/hbase/client/HTable.java
src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java
Author: stack
Date: Tue Jul 13 19:21:36 2010
New Revision: 963826
URL: http://svn.apache.org/viewvc?rev=963826&view=rev
Log:
HBASE-2828 HTable unnecessarily coupled with HMaster
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=963826&r1=963825&r2=963826&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Tue Jul 13 19:21:36 2010
@@ -757,7 +757,9 @@ Release 0.21.0 - Unreleased
HBASE-2786 TestHLog.testSplit hangs (Nicolas Spiegelberg via JD)
HBASE-2790 Purge apache-forrest from TRUNK
HBASE-2793 Add ability to extract a specified list of versions of a column
- in a single roundtrip (Kannan via Ryan)
+ in a single roundtrip (Kannan via Ryan)
+ HBASE-2828 HTable unnecessarily coupled with HMaster
+ (Nicolas Spiegelberg via Stack)
NEW FEATURES
HBASE-1961 HBase EC2 scripts
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=963826&r1=963825&r2=963826&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Tue Jul 13 19:21:36 2010
@@ -49,7 +49,11 @@ import java.util.Map;
import java.util.NavigableMap;
/**
- * Provides administrative functions for HBase
+ * Provides an interface to manage HBase database table metadata + general
+ * administrative functions. Use HBaseAdmin to create, drop, list, enable and
+ * disable tables. Use it also to add and drop table column families.
+ *
+ * See {@link HTable} to add, update, and delete data from an individual table.
*/
public class HBaseAdmin {
private final Log LOG = LogFactory.getLog(this.getClass().getName());
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java?rev=963826&r1=963825&r2=963826&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HTable.java Tue Jul 13 19:21:36 2010
@@ -57,11 +57,13 @@ import java.io.DataOutput;
/**
* Used to communicate with a single HBase table.
- * <p>
+ *
* This class is not thread safe for writes.
* Gets, puts, and deletes take out a row lock for the duration
* of their operation. Scans (currently) do not respect
* row locking.
+ *
+ * See {@link HBaseAdmin} to create, drop, list, enable and disable tables.
*/
public class HTable implements HTableInterface {
private final HConnection connection;
@@ -167,9 +169,11 @@ public class HTable implements HTableInt
* @return the number of region servers that are currently running
* @throws IOException if a remote or network exception occurs
*/
- private int getCurrentNrHRS() throws IOException {
- HBaseAdmin admin = new HBaseAdmin(this.configuration);
- return admin.getClusterStatus().getServers();
+ int getCurrentNrHRS() throws IOException {
+ return HConnectionManager
+ .getClientZooKeeperWatcher(this.configuration)
+ .getZooKeeperWrapper()
+ .getRSDirectoryCount();
}
// For multiput
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java?rev=963826&r1=963825&r2=963826&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWrapper.java Tue Jul 13 19:21:36 2010
@@ -748,6 +748,21 @@ public class ZooKeeperWrapper implements
LOG.warn("<" + instanceName + ">" + "Failed to delete " + rsZNode + " znodes in ZooKeeper: " + e);
}
}
+
+ /**
+ * @return the number of region server znodes in the RS directory
+ */
+ public int getRSDirectoryCount() {
+ Stat stat = null;
+ try {
+ stat = zooKeeper.exists(rsZNode, false);
+ } catch (KeeperException e) {
+ LOG.warn("Problem getting stats for " + rsZNode, e);
+ } catch (InterruptedException e) {
+ LOG.warn("Problem getting stats for " + rsZNode, e);
+ }
+ return (stat != null) ? stat.getNumChildren() : 0;
+ }
private boolean checkExistenceOf(String path) {
Stat stat = null;