You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ch...@apache.org on 2017/09/04 09:09:07 UTC

hbase git commit: HBASE-18736 Cleanup the HTD/HCD for Admin

Repository: hbase
Updated Branches:
  refs/heads/branch-2 a1efda29e -> 0e0154483


HBASE-18736 Cleanup the HTD/HCD for Admin


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0e015448
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0e015448
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0e015448

Branch: refs/heads/branch-2
Commit: 0e0154483872a9d85dc2e75aab8274f065ea8931
Parents: a1efda2
Author: Chia-Ping Tsai <ch...@gmail.com>
Authored: Sat Sep 2 00:06:02 2017 +0800
Committer: Chia-Ping Tsai <ch...@gmail.com>
Committed: Mon Sep 4 17:02:28 2017 +0800

----------------------------------------------------------------------
 .../archetypes/exemplars/client/HelloHBase.java |  12 ++-
 .../org/apache/hadoop/hbase/client/Admin.java   | 107 +++----------------
 .../apache/hadoop/hbase/client/HBaseAdmin.java  |  46 ++------
 .../org/apache/hadoop/hbase/client/HTable.java  |   6 +-
 .../hadoop/hbase/snapshot/SnapshotInfo.java     |   2 +-
 5 files changed, 27 insertions(+), 146 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/0e015448/hbase-archetypes/hbase-client-project/src/main/java/org/apache/hbase/archetypes/exemplars/client/HelloHBase.java
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/src/main/java/org/apache/hbase/archetypes/exemplars/client/HelloHBase.java b/hbase-archetypes/hbase-client-project/src/main/java/org/apache/hbase/archetypes/exemplars/client/HelloHBase.java
index e327541..ee2f034 100644
--- a/hbase-archetypes/hbase-client-project/src/main/java/org/apache/hbase/archetypes/exemplars/client/HelloHBase.java
+++ b/hbase-archetypes/hbase-client-project/src/main/java/org/apache/hbase/archetypes/exemplars/client/HelloHBase.java
@@ -21,12 +21,11 @@ package org.apache.hbase.archetypes.exemplars.client;
 import java.io.IOException;
 import java.util.Map.Entry;
 import java.util.NavigableMap;
-import org.apache.hadoop.hbase.HColumnDescriptor;
-import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.NamespaceDescriptor;
 import org.apache.hadoop.hbase.NamespaceNotFoundException;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Delete;
@@ -34,6 +33,8 @@ import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.hadoop.hbase.client.TableDescriptor;
+import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
 import org.apache.hadoop.hbase.util.Bytes;
 
 /**
@@ -110,9 +111,10 @@ public final class HelloHBase {
       System.out.println("Creating Table [" + MY_TABLE_NAME.getNameAsString()
               + "], with one Column Family ["
               + Bytes.toString(MY_COLUMN_FAMILY_NAME) + "].");
-
-      admin.createTable(new HTableDescriptor(MY_TABLE_NAME)
-              .addFamily(new HColumnDescriptor(MY_COLUMN_FAMILY_NAME)));
+      TableDescriptor desc = TableDescriptorBuilder.newBuilder(MY_TABLE_NAME)
+              .addColumnFamily(ColumnFamilyDescriptorBuilder.of(MY_COLUMN_FAMILY_NAME))
+              .build();
+      admin.createTable(desc);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/0e015448/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
index 8de9f89..b19c107 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
@@ -32,7 +32,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.Abortable;
 import org.apache.hadoop.hbase.ClusterStatus;
 import org.apache.hadoop.hbase.ClusterStatus.Options;
-import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.NamespaceDescriptor;
@@ -291,23 +290,6 @@ public interface Admin extends Abortable, Closeable {
    * @throws org.apache.hadoop.hbase.TableExistsException if table already exists (If concurrent
    * threads, the table may have been created between test-for-existence and attempt-at-creation).
    * @throws IOException if a remote or network exception occurs
-   * @deprecated since 2.0 version and will be removed in 3.0 version.
-   *             use {@link #createTable(TableDescriptor)}
-   */
-  @Deprecated
-  default void createTable(HTableDescriptor desc) throws IOException {
-    createTable((TableDescriptor) desc);
-  }
-
-  /**
-   * Creates a new table. Synchronous operation.
-   *
-   * @param desc table descriptor for table
-   * @throws IllegalArgumentException if the table name is reserved
-   * @throws org.apache.hadoop.hbase.MasterNotRunningException if master is not running
-   * @throws org.apache.hadoop.hbase.TableExistsException if table already exists (If concurrent
-   * threads, the table may have been created between test-for-existence and attempt-at-creation).
-   * @throws IOException if a remote or network exception occurs
    */
   void createTable(TableDescriptor desc) throws IOException;
 
@@ -327,31 +309,6 @@ public interface Admin extends Abortable, Closeable {
    * @throws org.apache.hadoop.hbase.TableExistsException if table already exists (If concurrent
    * threads, the table may have been created between test-for-existence and attempt-at-creation).
    * @throws IOException
-   * @deprecated since 2.0 version and will be removed in 3.0 version.
-   *             use {@link #createTable(TableDescriptor, byte[], byte[], int)}
-   */
-  @Deprecated
-  default void createTable(HTableDescriptor desc, byte[] startKey, byte[] endKey, int numRegions)
-      throws IOException {
-    createTable((TableDescriptor) desc, startKey, endKey, numRegions);
-  }
-
-  /**
-   * Creates a new table with the specified number of regions.  The start key specified will become
-   * the end key of the first region of the table, and the end key specified will become the start
-   * key of the last region of the table (the first region has a null start key and the last region
-   * has a null end key). BigInteger math will be used to divide the key range specified into enough
-   * segments to make the required number of total regions. Synchronous operation.
-   *
-   * @param desc table descriptor for table
-   * @param startKey beginning of key range
-   * @param endKey end of key range
-   * @param numRegions the total number of regions to create
-   * @throws IllegalArgumentException if the table name is reserved
-   * @throws org.apache.hadoop.hbase.MasterNotRunningException if master is not running
-   * @throws org.apache.hadoop.hbase.TableExistsException if table already exists (If concurrent
-   * threads, the table may have been created between test-for-existence and attempt-at-creation).
-   * @throws IOException
    */
   void createTable(TableDescriptor desc, byte[] startKey, byte[] endKey, int numRegions)
       throws IOException;
@@ -369,27 +326,6 @@ public interface Admin extends Abortable, Closeable {
    * @throws org.apache.hadoop.hbase.TableExistsException if table already exists (If concurrent
    * threads, the table may have been created between test-for-existence and attempt-at-creation).
    * @throws IOException
-   * @deprecated since 2.0 version and will be removed in 3.0 version.
-   *             use {@link #createTable(TableDescriptor, byte[][])}
-   */
-  @Deprecated
-  default void createTable(final HTableDescriptor desc, byte[][] splitKeys) throws IOException {
-    createTable((TableDescriptor) desc, splitKeys);
-  }
-
-  /**
-   * Creates a new table with an initial set of empty regions defined by the specified split keys.
-   * The total number of regions created will be the number of split keys plus one. Synchronous
-   * operation. Note : Avoid passing empty split key.
-   *
-   * @param desc table descriptor for table
-   * @param splitKeys array of split keys for the initial regions of the table
-   * @throws IllegalArgumentException if the table name is reserved, if the split keys are repeated
-   * and if the split key has empty byte array.
-   * @throws org.apache.hadoop.hbase.MasterNotRunningException if master is not running
-   * @throws org.apache.hadoop.hbase.TableExistsException if table already exists (If concurrent
-   * threads, the table may have been created between test-for-existence and attempt-at-creation).
-   * @throws IOException
    */
   void createTable(final TableDescriptor desc, byte[][] splitKeys) throws IOException;
 
@@ -407,29 +343,6 @@ public interface Admin extends Abortable, Closeable {
    * @throws IOException if a remote or network exception occurs
    * @return the result of the async creation. You can use Future.get(long, TimeUnit)
    *    to wait on the operation to complete.
-   * @deprecated since 2.0 version and will be removed in 3.0 version.
-   *             use {@link #createTableAsync(TableDescriptor, byte[][])}
-   */
-  @Deprecated
-  default Future<Void> createTableAsync(final HTableDescriptor desc, final byte[][] splitKeys)
-      throws IOException {
-    return createTableAsync((TableDescriptor) desc, splitKeys);
-  }
-
-  /**
-   * Creates a new table but does not block and wait for it to come online.
-   * You can use Future.get(long, TimeUnit) to wait on the operation to complete.
-   * It may throw ExecutionException if there was an error while executing the operation
-   * or TimeoutException in case the wait timeout was not long enough to allow the
-   * operation to complete.
-   * Throws IllegalArgumentException Bad table name, if the split keys
-   *    are repeated and if the split key has empty byte array.
-   *
-   * @param desc table descriptor for table
-   * @param splitKeys keys to check if the table has been created with all split keys
-   * @throws IOException if a remote or network exception occurs
-   * @return the result of the async creation. You can use Future.get(long, TimeUnit)
-   *    to wait on the operation to complete.
    */
   Future<Void> createTableAsync(final TableDescriptor desc, final byte[][] splitKeys)
       throws IOException;
@@ -718,8 +631,10 @@ public interface Admin extends Abortable, Closeable {
    *             Use {@link #addColumnFamily(TableName, ColumnFamilyDescriptor)}.
    */
   @Deprecated
-  void addColumn(final TableName tableName, final HColumnDescriptor columnFamily)
-    throws IOException;
+  default void addColumn(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
+    throws IOException {
+    addColumnFamily(tableName, columnFamily);
+  }
 
   /**
    * Add a column family to an existing table.
@@ -798,8 +713,10 @@ public interface Admin extends Abortable, Closeable {
    *             Use {@link #modifyColumnFamily(TableName, ColumnFamilyDescriptor)}.
    */
   @Deprecated
-  void modifyColumn(final TableName tableName, final HColumnDescriptor columnFamily)
-      throws IOException;
+  default void modifyColumn(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
+      throws IOException {
+    modifyColumnFamily(tableName, columnFamily);
+  }
 
   /**
    * Modify an existing column family on a table.
@@ -1231,13 +1148,13 @@ public interface Admin extends Abortable, Closeable {
    * Modify an existing table, more IRB friendly version.
    *
    * @param tableName name of table.
-   * @param htd modified description of the table
+   * @param td modified description of the table
    * @throws IOException if a remote or network exception occurs
    * @deprecated since 2.0 version and will be removed in 3.0 version.
    *             use {@link #modifyTable(TableDescriptor)}
    */
   @Deprecated
-  void modifyTable(final TableName tableName, final HTableDescriptor htd)
+  void modifyTable(final TableName tableName, final TableDescriptor td)
       throws IOException;
 
   /**
@@ -1257,7 +1174,7 @@ public interface Admin extends Abortable, Closeable {
    * operation to complete.
    *
    * @param tableName name of table.
-   * @param htd modified description of the table
+   * @param td modified description of the table
    * @throws IOException if a remote or network exception occurs
    * @return the result of the async modify. You can use Future.get(long, TimeUnit) to wait on the
    *     operation to complete
@@ -1265,7 +1182,7 @@ public interface Admin extends Abortable, Closeable {
    *             use {@link #modifyTableAsync(TableDescriptor)}
    */
   @Deprecated
-  Future<Void> modifyTableAsync(final TableName tableName, final HTableDescriptor htd)
+  Future<Void> modifyTableAsync(final TableName tableName, final TableDescriptor td)
       throws IOException;
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/0e015448/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index a2fa7e0..c699676 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -994,18 +994,6 @@ public class HBaseAdmin implements Admin {
     return getAlterStatus(TableName.valueOf(tableName));
   }
 
-  /**
-   * {@inheritDoc}
-   * @deprecated Since 2.0. Will be removed in 3.0. Use
-   *     {@link #addColumnFamily(TableName, ColumnFamilyDescriptor)} instead.
-   */
-  @Override
-  @Deprecated
-  public void addColumn(final TableName tableName, final HColumnDescriptor columnFamily)
-  throws IOException {
-    addColumnFamily(tableName, columnFamily);
-  }
-
   @Override
   public void addColumnFamily(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
       throws IOException {
@@ -1092,18 +1080,6 @@ public class HBaseAdmin implements Admin {
     }
   }
 
-  /**
-   * {@inheritDoc}
-   * @deprecated As of 2.0. Will be removed in 3.0. Use
-   *     {@link #modifyColumnFamily(TableName, ColumnFamilyDescriptor)} instead.
-   */
-  @Override
-  @Deprecated
-  public void modifyColumn(final TableName tableName, final HColumnDescriptor columnFamily)
-  throws IOException {
-    modifyColumnFamily(tableName, columnFamily);
-  }
-
   @Override
   public void modifyColumnFamily(final TableName tableName,
       final ColumnFamilyDescriptor columnFamily) throws IOException {
@@ -1872,29 +1848,19 @@ public class HBaseAdmin implements Admin {
   }
 
   @Override
-  public void modifyTable(final TableName tableName, final HTableDescriptor htd)
+  public void modifyTable(final TableName tableName, final TableDescriptor td)
       throws IOException {
-    get(modifyTableAsync(tableName, htd), syncWaitTimeout, TimeUnit.MILLISECONDS);
+    get(modifyTableAsync(tableName, td), syncWaitTimeout, TimeUnit.MILLISECONDS);
   }
 
   @Override
-  public Future<Void> modifyTableAsync(final TableName tableName, final HTableDescriptor htd)
+  public Future<Void> modifyTableAsync(final TableName tableName, final TableDescriptor td)
       throws IOException {
-    if (!tableName.equals(htd.getTableName())) {
+    if (!tableName.equals(td.getTableName())) {
       throw new IllegalArgumentException("the specified table name '" + tableName +
-        "' doesn't match with the HTD one: " + htd.getTableName());
+        "' doesn't match with the HTD one: " + td.getTableName());
     }
-    ModifyTableResponse response = executeCallable(
-      new MasterCallable<ModifyTableResponse>(getConnection(), getRpcControllerFactory()) {
-        @Override
-        protected ModifyTableResponse rpcCall() throws Exception {
-          setPriority(tableName);
-          ModifyTableRequest request = RequestConverter.buildModifyTableRequest(
-            tableName, htd, ng.getNonceGroup(), ng.newNonce());
-          return master.modifyTable(getRpcController(), request);
-        }
-      });
-    return new ModifyTableFuture(this, tableName, response);
+    return modifyTableAsync(td);
   }
 
   private static class ModifyTableFuture extends TableFuture<Void> {

http://git-wip-us.apache.org/repos/asf/hbase/blob/0e015448/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
index 43b05f4..b5c2f92 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
@@ -243,12 +243,8 @@ public class HTable implements Table {
 
   @Override
   public TableDescriptor getDescriptor() throws IOException {
-    HTableDescriptor htd = HBaseAdmin.getHTableDescriptor(tableName, connection, rpcCallerFactory,
+    return HBaseAdmin.getTableDescriptor(tableName, connection, rpcCallerFactory,
       rpcControllerFactory, operationTimeout, readRpcTimeout);
-    if (htd != null) {
-      return new ImmutableHTableDescriptor(htd);
-    }
-    return null;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/0e015448/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java
index d3f1cbc..dad6127 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java
@@ -438,7 +438,7 @@ public final class SnapshotInfo extends AbstractHBaseTool {
   }
 
   /**
-   * Dump the {@link org.apache.hadoop.hbase.HTableDescriptor}
+   * Dump the {@link org.apache.hadoop.hbase.client.TableDescriptor}
    */
   private void printSchema() {
     System.out.println("Table Descriptor");