http://git-wip-us.apache.org/repos/asf/hbase/blob/6adce675/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 66079dd..7a50458 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 @@ -221,7 +221,7 @@ public class HBaseAdmin implements Admin { return operationTimeout; } - HBaseAdmin(ClusterConnection connection) { + HBaseAdmin(ClusterConnection connection) throws IOException { this.conf = connection.getConfiguration(); this.connection = connection; @@ -253,13 +253,6 @@ public class HBaseAdmin implements Admin { return this.aborted; } - /** - * Abort a procedure - * @param procId ID of the procedure to abort - * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted? - * @return true if aborted, false if procedure already completed or does not exist - * @throws IOException - */ @Override public boolean abortProcedure( final long procId, @@ -280,18 +273,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Abort a procedure but does not block and wait for it be completely removed. - * 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. - * - * @param procId ID of the procedure to abort - * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted? - * @return true if aborted, false if procedure already completed or does not exist - * @throws IOException - */ @Override public Future<Boolean> abortProcedureAsync( final long procId, @@ -339,23 +320,6 @@ public class HBaseAdmin implements Admin { return connection; } - /** @return - true if the master server is running. Throws an exception - * otherwise. - * @throws ZooKeeperConnectionException - * @throws MasterNotRunningException - * @deprecated this has been deprecated without a replacement - */ - @Deprecated - public boolean isMasterRunning() - throws MasterNotRunningException, ZooKeeperConnectionException { - return connection.isMasterRunning(); - } - - /** - * @param tableName Table to check. - * @return True if table exists already. - * @throws IOException - */ @Override public boolean tableExists(final TableName tableName) throws IOException { return executeCallable(new ConnectionCallable<Boolean>(getConnection()) { @@ -366,16 +330,6 @@ public class HBaseAdmin implements Admin { }); } - public boolean tableExists(final byte[] tableName) - throws IOException { - return tableExists(TableName.valueOf(tableName)); - } - - public boolean tableExists(final String tableName) - throws IOException { - return tableExists(TableName.valueOf(tableName)); - } - @Override public HTableDescriptor[] listTables() throws IOException { return listTables((Pattern)null, false); @@ -410,51 +364,6 @@ public class HBaseAdmin implements Admin { return listTables(Pattern.compile(regex), includeSysTables); } - /** - * List all of the names of userspace tables. - * @return String[] table names - * @throws IOException if a remote or network exception occurs - * @deprecated Use {@link Admin#listTableNames()} instead - */ - @Deprecated - public String[] getTableNames() throws IOException { - TableName[] tableNames = listTableNames(); - String[] result = new String[tableNames.length]; - for (int i = 0; i < tableNames.length; i++) { - result[i] = tableNames[i].getNameAsString(); - } - return result; - } - - /** - * List all of the names of userspace tables matching the given regular expression. - * @param pattern The regular expression to match against - * @return String[] table names - * @throws IOException if a remote or network exception occurs - * @deprecated Use {@link Admin#listTableNames(Pattern)} instead. - */ - @Deprecated - public String[] getTableNames(Pattern pattern) throws IOException { - TableName[] tableNames = listTableNames(pattern); - String[] result = new String[tableNames.length]; - for (int i = 0; i < tableNames.length; i++) { - result[i] = tableNames[i].getNameAsString(); - } - return result; - } - - /** - * List all of the names of userspace tables matching the given regular expression. - * @param regex The regular expression to match against - * @return String[] table names - * @throws IOException if a remote or network exception occurs - * @deprecated Use {@link Admin#listTableNames(Pattern)} instead. - */ - @Deprecated - public String[] getTableNames(String regex) throws IOException { - return getTableNames(Pattern.compile(regex)); - } - @Override public TableName[] listTableNames() throws IOException { return listTableNames((Pattern)null, false); @@ -490,23 +399,13 @@ public class HBaseAdmin implements Admin { return listTableNames(Pattern.compile(regex), includeSysTables); } - /** - * Method for getting the tableDescriptor - * @param tableName as a byte [] - * @return the tableDescriptor - * @throws TableNotFoundException - * @throws IOException if a remote or network exception occurs - */ @Override - public HTableDescriptor getTableDescriptor(final TableName tableName) - throws TableNotFoundException, IOException { + public HTableDescriptor getTableDescriptor(final TableName tableName) throws IOException { return getTableDescriptor(tableName, getConnection(), rpcCallerFactory, operationTimeout); } - static HTableDescriptor getTableDescriptor(final TableName tableName, - HConnection connection, RpcRetryingCallerFactory rpcCallerFactory, - int operationTimeout) throws TableNotFoundException, IOException { - + static HTableDescriptor getTableDescriptor(final TableName tableName, HConnection connection, + RpcRetryingCallerFactory rpcCallerFactory, int operationTimeout) throws IOException { if (tableName == null) return null; HTableDescriptor htd = executeCallable(new MasterCallable<HTableDescriptor>(connection) { @Override @@ -528,11 +427,6 @@ public class HBaseAdmin implements Admin { throw new TableNotFoundException(tableName.getNameAsString()); } - public HTableDescriptor getTableDescriptor(final byte[] tableName) - throws TableNotFoundException, IOException { - return getTableDescriptor(TableName.valueOf(tableName)); - } - private long getPauseTime(int tries) { int triesCount = tries; if (triesCount >= HConstants.RETRY_BACKOFF.length) { @@ -541,49 +435,12 @@ public class HBaseAdmin implements Admin { return this.pause * HConstants.RETRY_BACKOFF[triesCount]; } - /** - * Creates a new table. - * Synchronous operation. - * - * @param desc table descriptor for table - * - * @throws IllegalArgumentException if the table name is reserved - * @throws MasterNotRunningException if master is not running - * @throws 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 - */ @Override public void createTable(HTableDescriptor desc) throws IOException { createTable(desc, null); } - /** - * 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 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 - */ @Override public void createTable(HTableDescriptor desc, byte [] startKey, byte [] endKey, int numRegions) @@ -604,23 +461,6 @@ public class HBaseAdmin implements Admin { createTable(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 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 - */ @Override public void createTable(final HTableDescriptor desc, byte [][] splitKeys) throws IOException { @@ -642,21 +482,6 @@ public class HBaseAdmin implements Admin { } } - /** - * 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. - * - * @param desc table descriptor for table - * @param splitKeys keys to check if the table has been created with all split keys - * @throws IllegalArgumentException Bad table name, if the split keys - * are repeated and if the split key has empty byte array. - * @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. - */ @Override public Future<Void> createTableAsync(final HTableDescriptor desc, final byte[][] splitKeys) throws IOException { @@ -723,21 +548,6 @@ public class HBaseAdmin implements Admin { } } - public void deleteTable(final String tableName) throws IOException { - deleteTable(TableName.valueOf(tableName)); - } - - public void deleteTable(final byte[] tableName) throws IOException { - deleteTable(TableName.valueOf(tableName)); - } - - /** - * Deletes a table. - * Synchronous operation. - * - * @param tableName name of table to delete - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteTable(final TableName tableName) throws IOException { Future<Void> future = deleteTableAsync(tableName); @@ -756,18 +566,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Deletes the table but does not block and wait for it be completely removed. - * 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. - * - * @param tableName name of table to delete - * @throws IOException if a remote or network exception occurs - * @return the result of the async delete. You can use Future.get(long, TimeUnit) - * to wait on the operation to complete. - */ @Override public Future<Void> deleteTableAsync(final TableName tableName) throws IOException { DeleteTableResponse response = executeCallable( @@ -810,19 +608,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Deletes tables matching the passed in pattern and wait on completion. - * - * Warning: Use this method carefully, there is no prompting and the effect is - * immediate. Consider using {@link #listTables(java.lang.String)} and - * {@link #deleteTable(byte[])} - * - * @param regex The regular expression to match table names against - * @return Table descriptors for tables that couldn't be deleted - * @throws IOException - * @see #deleteTables(java.util.regex.Pattern) - * @see #deleteTable(java.lang.String) - */ @Override public HTableDescriptor[] deleteTables(String regex) throws IOException { return deleteTables(Pattern.compile(regex)); @@ -833,7 +618,7 @@ public class HBaseAdmin implements Admin { * * Warning: Use this method carefully, there is no prompting and the effect is * immediate. Consider using {@link #listTables(java.util.regex.Pattern) } and - * {@link #deleteTable(byte[])} + * {@link #deleteTable(TableName)} * * @param pattern The pattern to match table names against * @return Table descriptors for tables that couldn't be deleted @@ -853,12 +638,6 @@ public class HBaseAdmin implements Admin { return failed.toArray(new HTableDescriptor[failed.size()]); } - /** - * Truncate a table. Synchronous operation. - * @param tableName name of table to truncate - * @param preserveSplits True if the splits should be preserved - * @throws IOException if a remote or network exception occurs - */ @Override public void truncateTable(final TableName tableName, final boolean preserveSplits) throws IOException { @@ -879,18 +658,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Truncate the table but does not block and wait for it be completely enabled. 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. Asynchronous - * operation. - * @param tableName name of table to delete - * @param preserveSplits true if the splits should be preserved - * @throws IOException if a remote or network exception occurs - * @return the result of the async truncate. You can use Future.get(long, TimeUnit) to wait on the - * operation to complete. - */ @Override public Future<Void> truncateTableAsync(final TableName tableName, final boolean preserveSplits) throws IOException { @@ -947,20 +714,6 @@ public class HBaseAdmin implements Admin { return splits; } - - /** - * Enable a table. May timeout. Use {@link #enableTableAsync(byte[])} - * and {@link #isTableEnabled(byte[])} instead. - * The table has to be in disabled state for it to be enabled. - * @param tableName name of the table - * @throws IOException if a remote or network exception occurs - * There could be couple types of IOException - * TableNotFoundException means the table doesn't exist. - * TableNotDisabledException means the table isn't in disabled state. - * @see #isTableEnabled(byte[]) - * @see #disableTable(byte[]) - * @see #enableTableAsync(byte[]) - */ @Override public void enableTable(final TableName tableName) throws IOException { @@ -980,16 +733,6 @@ public class HBaseAdmin implements Admin { } } - public void enableTable(final byte[] tableName) - throws IOException { - enableTable(TableName.valueOf(tableName)); - } - - public void enableTable(final String tableName) - throws IOException { - enableTable(TableName.valueOf(tableName)); - } - /** * Wait for the table to be enabled and available * If enabling the table exceeds the retry period, an exception is thrown. @@ -1031,28 +774,6 @@ public class HBaseAdmin implements Admin { } } - public void enableTableAsync(final byte[] tableName) - throws IOException { - enableTable(TableName.valueOf(tableName)); - } - - public void enableTableAsync(final String tableName) - throws IOException { - enableTableAsync(TableName.valueOf(tableName)); - } - - /** - * Enable the table but does not block and wait for it be completely enabled. - * 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. - * - * @param tableName name of table to delete - * @throws IOException if a remote or network exception occurs - * @return the result of the async enable. You can use Future.get(long, TimeUnit) - * to wait on the operation to complete. - */ @Override public Future<Void> enableTableAsync(final TableName tableName) throws IOException { TableName.isLegalFullyQualifiedTableName(tableName.getName()); @@ -1088,33 +809,11 @@ public class HBaseAdmin implements Admin { } } - /** - * Enable tables matching the passed in pattern and wait on completion. - * - * Warning: Use this method carefully, there is no prompting and the effect is - * immediate. Consider using {@link #listTables(java.lang.String)} and - * {@link #enableTable(byte[])} - * - * @param regex The regular expression to match table names against - * @throws IOException - * @see #enableTables(java.util.regex.Pattern) - * @see #enableTable(java.lang.String) - */ @Override public HTableDescriptor[] enableTables(String regex) throws IOException { return enableTables(Pattern.compile(regex)); } - /** - * Enable tables matching the passed in pattern and wait on completion. - * - * Warning: Use this method carefully, there is no prompting and the effect is - * immediate. Consider using {@link #listTables(java.util.regex.Pattern) } and - * {@link #enableTable(byte[])} - * - * @param pattern The pattern to match table names against - * @throws IOException - */ @Override public HTableDescriptor[] enableTables(Pattern pattern) throws IOException { List<HTableDescriptor> failed = new LinkedList<HTableDescriptor>(); @@ -1131,25 +830,6 @@ public class HBaseAdmin implements Admin { return failed.toArray(new HTableDescriptor[failed.size()]); } - public void disableTableAsync(final byte[] tableName) throws IOException { - disableTableAsync(TableName.valueOf(tableName)); - } - - public void disableTableAsync(final String tableName) throws IOException { - disableTableAsync(TableName.valueOf(tableName)); - } - - /** - * Disable table and wait on completion. May timeout eventually. Use - * {@link #disableTableAsync(byte[])} and {@link #isTableDisabled(String)} - * instead. - * The table has to be in enabled state for it to be disabled. - * @param tableName - * @throws IOException - * There could be couple types of IOException - * TableNotFoundException means the table doesn't exist. - * TableNotEnabledException means the table isn't in enabled state. - */ @Override public void disableTable(final TableName tableName) throws IOException { @@ -1169,28 +849,6 @@ public class HBaseAdmin implements Admin { } } - public void disableTable(final byte[] tableName) - throws IOException { - disableTable(TableName.valueOf(tableName)); - } - - public void disableTable(final String tableName) - throws IOException { - disableTable(TableName.valueOf(tableName)); - } - - /** - * Disable the table but does not block and wait for it be completely disabled. - * 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. - * - * @param tableName name of table to delete - * @throws IOException if a remote or network exception occurs - * @return the result of the async disable. You can use Future.get(long, TimeUnit) - * to wait on the operation to complete. - */ @Override public Future<Void> disableTableAsync(final TableName tableName) throws IOException { TableName.isLegalFullyQualifiedTableName(tableName.getName()); @@ -1220,42 +878,17 @@ public class HBaseAdmin implements Admin { } @Override - protected Void waitOperationResult(final long deadlineTs) - throws IOException, TimeoutException { + protected Void waitOperationResult(long deadlineTs) throws IOException, TimeoutException { waitForTableDisabled(deadlineTs); return null; } } - /** - * Disable tables matching the passed in pattern and wait on completion. - * - * Warning: Use this method carefully, there is no prompting and the effect is - * immediate. Consider using {@link #listTables(java.lang.String)} and - * {@link #disableTable(byte[])} - * - * @param regex The regular expression to match table names against - * @return Table descriptors for tables that couldn't be disabled - * @throws IOException - * @see #disableTables(java.util.regex.Pattern) - * @see #disableTable(java.lang.String) - */ @Override public HTableDescriptor[] disableTables(String regex) throws IOException { return disableTables(Pattern.compile(regex)); } - /** - * Disable tables matching the passed in pattern and wait on completion. - * - * Warning: Use this method carefully, there is no prompting and the effect is - * immediate. Consider using {@link #listTables(java.util.regex.Pattern) } and - * {@link #disableTable(byte[])} - * - * @param pattern The pattern to match table names against - * @return Table descriptors for tables that couldn't be disabled - * @throws IOException - */ @Override public HTableDescriptor[] disableTables(Pattern pattern) throws IOException { List<HTableDescriptor> failed = new LinkedList<HTableDescriptor>(); @@ -1272,24 +905,9 @@ public class HBaseAdmin implements Admin { return failed.toArray(new HTableDescriptor[failed.size()]); } - /* - * Checks whether table exists. If not, throws TableNotFoundException - * @param tableName - */ - private void checkTableExistence(TableName tableName) throws IOException { - if (!tableExists(tableName)) { - throw new TableNotFoundException(tableName); - } - } - - /** - * @param tableName name of table to check - * @return true if table is on-line - * @throws IOException if a remote or network exception occurs - */ @Override public boolean isTableEnabled(final TableName tableName) throws IOException { - checkTableExistence(tableName); + checkTableExists(tableName); return executeCallable(new ConnectionCallable<Boolean>(getConnection()) { @Override public Boolean call(int callTimeout) throws ServiceException, IOException { @@ -1301,173 +919,46 @@ public class HBaseAdmin implements Admin { }); } - public boolean isTableEnabled(byte[] tableName) throws IOException { - return isTableEnabled(TableName.valueOf(tableName)); - } - - public boolean isTableEnabled(String tableName) throws IOException { - return isTableEnabled(TableName.valueOf(tableName)); - } - - - - /** - * @param tableName name of table to check - * @return true if table is off-line - * @throws IOException if a remote or network exception occurs - */ @Override public boolean isTableDisabled(TableName tableName) throws IOException { - checkTableExistence(tableName); + checkTableExists(tableName); return connection.isTableDisabled(tableName); } - public boolean isTableDisabled(byte[] tableName) throws IOException { - return isTableDisabled(TableName.valueOf(tableName)); - } - - public boolean isTableDisabled(String tableName) throws IOException { - return isTableDisabled(TableName.valueOf(tableName)); - } - - /** - * @param tableName name of table to check - * @return true if all regions of the table are available - * @throws IOException if a remote or network exception occurs - */ @Override public boolean isTableAvailable(TableName tableName) throws IOException { return connection.isTableAvailable(tableName); } - public boolean isTableAvailable(byte[] tableName) throws IOException { - return isTableAvailable(TableName.valueOf(tableName)); - } - - public boolean isTableAvailable(String tableName) throws IOException { - return isTableAvailable(TableName.valueOf(tableName)); - } - - /** - * Use this api to check if the table has been created with the specified number of - * splitkeys which was used while creating the given table. - * Note : If this api is used after a table's region gets splitted, the api may return - * false. - * @param tableName - * name of table to check - * @param splitKeys - * keys to check if the table has been created with all split keys - * @throws IOException - * if a remote or network excpetion occurs - */ @Override - public boolean isTableAvailable(TableName tableName, - byte[][] splitKeys) throws IOException { + public boolean isTableAvailable(TableName tableName, byte[][] splitKeys) throws IOException { return connection.isTableAvailable(tableName, splitKeys); } - public boolean isTableAvailable(byte[] tableName, - byte[][] splitKeys) throws IOException { - return isTableAvailable(TableName.valueOf(tableName), splitKeys); - } - - public boolean isTableAvailable(String tableName, - byte[][] splitKeys) throws IOException { - return isTableAvailable(TableName.valueOf(tableName), splitKeys); - } - - /** - * Get the status of alter command - indicates how many regions have received - * the updated schema Asynchronous operation. - * - * @param tableName TableName instance - * @return Pair indicating the number of regions updated Pair.getFirst() is the - * regions that are yet to be updated Pair.getSecond() is the total number - * of regions of the table - * @throws IOException - * if a remote or network exception occurs - */ @Override - public Pair<Integer, Integer> getAlterStatus(final TableName tableName) - throws IOException { + public Pair<Integer, Integer> getAlterStatus(final TableName tableName) throws IOException { return executeCallable(new MasterCallable<Pair<Integer, Integer>>(getConnection()) { @Override public Pair<Integer, Integer> call(int callTimeout) throws ServiceException { GetSchemaAlterStatusRequest req = RequestConverter .buildGetSchemaAlterStatusRequest(tableName); GetSchemaAlterStatusResponse ret = master.getSchemaAlterStatus(null, req); - Pair<Integer, Integer> pair = new Pair<Integer, Integer>(Integer.valueOf(ret - .getYetToUpdateRegions()), Integer.valueOf(ret.getTotalRegions())); + Pair<Integer, Integer> pair = new Pair<>(ret.getYetToUpdateRegions(), + ret.getTotalRegions()); return pair; } }); } - /** - * Get the status of alter command - indicates how many regions have received - * the updated schema Asynchronous operation. - * - * @param tableName - * name of the table to get the status of - * @return Pair indicating the number of regions updated Pair.getFirst() is the - * regions that are yet to be updated Pair.getSecond() is the total number - * of regions of the table - * @throws IOException - * if a remote or network exception occurs - */ @Override - public Pair<Integer, Integer> getAlterStatus(final byte[] tableName) - throws IOException { + public Pair<Integer, Integer> getAlterStatus(final byte[] tableName) throws IOException { return getAlterStatus(TableName.valueOf(tableName)); } /** - * Add a column family to an existing table. - * Asynchronous operation. - * - * @param tableName name of the table to add column family to - * @param columnFamily column family descriptor of column family to be added - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #addColumnFamily(TableName, HColumnDescriptor)}. - */ - @Deprecated - public void addColumn(final byte[] tableName, HColumnDescriptor columnFamily) - throws IOException { - addColumnFamily(TableName.valueOf(tableName), columnFamily); - } - - /** - * Add a column family to an existing table. - * Asynchronous operation. - * - * @param tableName name of the table to add column family to - * @param columnFamily column family descriptor of column family to be added - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #addColumnFamily(TableName, HColumnDescriptor)}. - */ - @Deprecated - public void addColumn(final String tableName, HColumnDescriptor columnFamily) - throws IOException { - addColumnFamily(TableName.valueOf(tableName), columnFamily); - } - - /** - * Add a column family to an existing table. - * Asynchronous operation. - * - * @param tableName name of the table to add column family to - * @param columnFamily column family descriptor of column family to be added - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #addColumnFamily(TableName, HColumnDescriptor)}. + * {@inheritDoc} + * @deprecated Since 2.0. Will be removed in 3.0. Use + * {@link #addColumnFamily(TableName, HColumnDescriptor)} instead. */ @Override @Deprecated @@ -1506,52 +997,9 @@ public class HBaseAdmin implements Admin { } /** - * Delete a column family from a table. - * Asynchronous operation. - * - * @param tableName name of table - * @param columnFamily name of column family to be deleted - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #deleteColumnFamily(TableName, byte[])}. - */ - @Deprecated - public void deleteColumn(final byte[] tableName, final String columnFamily) - throws IOException { - deleteColumnFamily(TableName.valueOf(tableName), Bytes.toBytes(columnFamily)); - } - - /** - * Delete a column family from a table. - * Asynchronous operation. - * - * @param tableName name of table - * @param columnFamily name of column family to be deleted - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #deleteColumnFamily(TableName, byte[])}. - */ - @Deprecated - public void deleteColumn(final String tableName, final String columnFamily) - throws IOException { - deleteColumnFamily(TableName.valueOf(tableName), Bytes.toBytes(columnFamily)); - } - - /** - * Delete a column family from a table. - * Asynchronous operation. - * - * @param tableName name of table - * @param columnFamily name of column family to be deleted - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #deleteColumnFamily(TableName, byte[])}. + * {@inheritDoc} + * @deprecated Since 2.0. Will be removed in 3.0. Use + * {@link #deleteColumnFamily(TableName, byte[])} instead. */ @Override @Deprecated @@ -1591,52 +1039,9 @@ public class HBaseAdmin implements Admin { } /** - * Modify an existing column family on a table. - * Asynchronous operation. - * - * @param tableName name of table - * @param columnFamily new column family descriptor to use - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #modifyColumnFamily(TableName, HColumnDescriptor)}. - */ - @Deprecated - public void modifyColumn(final String tableName, HColumnDescriptor columnFamily) - throws IOException { - modifyColumnFamily(TableName.valueOf(tableName), columnFamily); - } - - /** - * Modify an existing column family on a table. - * Asynchronous operation. - * - * @param tableName name of table - * @param columnFamily new column family descriptor to use - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #modifyColumnFamily(TableName, HColumnDescriptor)}. - */ - @Deprecated - public void modifyColumn(final byte[] tableName, HColumnDescriptor columnFamily) - throws IOException { - modifyColumnFamily(TableName.valueOf(tableName), columnFamily); - } - - /** - * Modify an existing column family on a table. - * Asynchronous operation. - * - * @param tableName name of table - * @param columnFamily new column family descriptor to use - * @throws IOException if a remote or network exception occurs - * @deprecated As of release 2.0.0. - * (<a href="https://issues.apache.org/jira/browse/HBASE-1989">HBASE-1989</a>). - * This will be removed in HBase 3.0.0. - * Use {@link #modifyColumnFamily(TableName, HColumnDescriptor)}. + * {@inheritDoc} + * @deprecated As of 2.0. Will be removed in 3.0. Use + * {@link #modifyColumnFamily(TableName, HColumnDescriptor)} instead. */ @Override @Deprecated @@ -1675,33 +1080,13 @@ public class HBaseAdmin implements Admin { } } - /** - * Close a region. For expert-admins. Runs close on the regionserver. The - * master will not be informed of the close. - * @param regionname region name to close - * @param serverName If supplied, we'll use this location rather than - * the one currently in <code>hbase:meta</code> - * @throws IOException if a remote or network exception occurs - */ @Override - public void closeRegion(final String regionname, final String serverName) - throws IOException { + public void closeRegion(final String regionname, final String serverName) throws IOException { closeRegion(Bytes.toBytes(regionname), serverName); } - /** - * Close a region. For expert-admins Runs close on the regionserver. The - * master will not be informed of the close. - * @param regionname region name to close - * @param serverName The servername of the regionserver. If passed null we - * will use servername found in the hbase:meta table. A server name - * is made of host, port and startcode. Here is an example: - * <code> host187.example.com,60020,1289493121758</code> - * @throws IOException if a remote or network exception occurs - */ @Override - public void closeRegion(final byte [] regionname, final String serverName) - throws IOException { + public void closeRegion(final byte [] regionname, final String serverName) throws IOException { if (serverName != null) { Pair<HRegionInfo, ServerName> pair = MetaTableAccessor.getRegion(connection, regionname); if (pair == null || pair.getFirst() == null) { @@ -1721,27 +1106,6 @@ public class HBaseAdmin implements Admin { } } - /** - * For expert-admins. Runs close on the regionserver. Closes a region based on - * the encoded region name. The region server name is mandatory. If the - * servername is provided then based on the online regions in the specified - * regionserver the specified region will be closed. The master will not be - * informed of the close. Note that the regionname is the encoded regionname. - * - * @param encodedRegionName - * The encoded region name; i.e. the hash that makes up the region - * name suffix: e.g. if regionname is - * <code>TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.</code> - * , then the encoded region name is: - * <code>527db22f95c8a9e0116f0cc13c680396</code>. - * @param serverName - * The servername of the regionserver. A server name is made of host, - * port and startcode. This is mandatory. Here is an example: - * <code> host187.example.com,60020,1289493121758</code> - * @return true if the region was closed, false if not. - * @throws IOException - * if a remote or network exception occurs - */ @Override public boolean closeRegionWithEncodedRegionName(final String encodedRegionName, final String serverName) throws IOException { @@ -1766,33 +1130,19 @@ public class HBaseAdmin implements Admin { } } - /** - * Close a region. For expert-admins Runs close on the regionserver. The - * master will not be informed of the close. - * @param sn - * @param hri - * @throws IOException - */ @Override - public void closeRegion(final ServerName sn, final HRegionInfo hri) - throws IOException { + public void closeRegion(final ServerName sn, final HRegionInfo hri) throws IOException { AdminService.BlockingInterface admin = this.connection.getAdmin(sn); // Close the region without updating zk state. ProtobufUtil.closeRegion(admin, sn, hri.getRegionName()); } - /** - * Get all the online regions on a region server. - */ @Override public List<HRegionInfo> getOnlineRegions(final ServerName sn) throws IOException { AdminService.BlockingInterface admin = this.connection.getAdmin(sn); return ProtobufUtil.getOnlineRegions(admin); } - /** - * {@inheritDoc} - */ @Override public void flush(final TableName tableName) throws IOException { checkTableExists(tableName); @@ -1804,9 +1154,6 @@ public class HBaseAdmin implements Admin { new HashMap<String, String>()); } - /** - * {@inheritDoc} - */ @Override public void flushRegion(final byte[] regionName) throws IOException { Pair<HRegionInfo, ServerName> regionServerPair = getRegion(regionName); @@ -1816,7 +1163,16 @@ public class HBaseAdmin implements Admin { if (regionServerPair.getSecond() == null) { throw new NoServerForRegionException(Bytes.toStringBinary(regionName)); } - flush(regionServerPair.getSecond(), regionServerPair.getFirst()); + HRegionInfo hRegionInfo = regionServerPair.getFirst(); + ServerName serverName = regionServerPair.getSecond(); + AdminService.BlockingInterface admin = this.connection.getAdmin(serverName); + FlushRegionRequest request = + RequestConverter.buildFlushRegionRequest(hRegionInfo.getRegionName()); + try { + admin.flushRegion(null, request); + } catch (ServiceException se) { + throw ProtobufUtil.getRemoteException(se); + } } private void flush(final ServerName sn, final HRegionInfo hri) @@ -1840,9 +1196,6 @@ public class HBaseAdmin implements Admin { compact(tableName, null, false, CompactType.NORMAL); } - /** - * {@inheritDoc} - */ @Override public void compactRegion(final byte[] regionName) throws IOException { @@ -1878,18 +1231,12 @@ public class HBaseAdmin implements Admin { } } - /** - * {@inheritDoc} - */ @Override public void majorCompact(final TableName tableName) throws IOException { compact(tableName, null, true, CompactType.NORMAL); } - /** - * {@inheritDoc} - */ @Override public void majorCompactRegion(final byte[] regionName) throws IOException { @@ -1905,9 +1252,6 @@ public class HBaseAdmin implements Admin { compact(tableName, columnFamily, true, CompactType.NORMAL); } - /** - * {@inheritDoc} - */ @Override public void majorCompactRegion(final byte[] regionName, final byte[] columnFamily) throws IOException { @@ -2001,19 +1345,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Move the region <code>r</code> to <code>dest</code>. - * @param encodedRegionName The encoded region name; i.e. the hash that makes - * up the region name suffix: e.g. if regionname is - * <code>TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.</code>, - * then the encoded region name is: <code>527db22f95c8a9e0116f0cc13c680396</code>. - * @param destServerName The servername of the destination regionserver. If - * passed the empty byte array we'll assign to a random server. A server name - * is made of host, port and startcode. Here is an example: - * <code> host187.example.com,60020,1289493121758</code> - * @throws UnknownRegionException Thrown if we can't find a region named - * <code>encodedRegionName</code> - */ @Override public void move(final byte [] encodedRegionName, final byte [] destServerName) throws IOException { @@ -2034,13 +1365,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * @param regionName - * Region name to assign. - * @throws MasterNotRunningException - * @throws ZooKeeperConnectionException - * @throws IOException - */ @Override public void assign(final byte[] regionName) throws MasterNotRunningException, ZooKeeperConnectionException, IOException { @@ -2056,20 +1380,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Unassign a region from current hosting regionserver. Region will then be - * assigned to a regionserver chosen at random. Region could be reassigned - * back to the same server. Use {@link #move(byte[], byte[])} if you want - * to control the region movement. - * @param regionName Region to unassign. Will clear any existing RegionPlan - * if one found. - * @param force If true, force unassign (Will remove region from - * regions-in-transition too if present. If results in double assignment - * use hbck -fix to resolve. To be used by experts). - * @throws MasterNotRunningException - * @throws ZooKeeperConnectionException - * @throws IOException - */ @Override public void unassign(final byte [] regionName, final boolean force) throws MasterNotRunningException, ZooKeeperConnectionException, IOException { @@ -2085,18 +1395,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Offline specified region from master's in-memory state. It will not attempt to reassign the - * region as in unassign. This API can be used when a region not served by any region server and - * still online as per Master's in memory state. If this API is incorrectly used on active region - * then master will loose track of that region. - * - * This is a special method that should be used by experts or hbck. - * - * @param regionName - * Region to offline. - * @throws IOException - */ @Override public void offline(final byte [] regionName) throws IOException { @@ -2109,12 +1407,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Turn the load balancer on or off. - * @param on If true, enable balancer. If false, disable balancer. - * @param synchronous If true, it waits until current balance() call, if outstanding, to return. - * @return Previous balancer value - */ @Override public boolean setBalancerRunning(final boolean on, final boolean synchronous) throws IOException { @@ -2128,12 +1420,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Invoke the balancer. Will run the balancer and if regions to move, it will - * go ahead and do the reassignments. Can NOT run for various reasons. Check - * logs. - * @return True if balancer ran, false otherwise. - */ @Override public boolean balancer() throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @@ -2154,12 +1440,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Query the state of the balancer from the Master. It's not a guarantee that the balancer is - * actually running this very moment, but that it will run. - * - * @return True if the balancer is enabled, false otherwise. - */ @Override public boolean isBalancerEnabled() throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @@ -2171,11 +1451,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Invoke region normalizer. Can NOT run for various reasons. Check logs. - * - * @return True if region normalizer ran, false otherwise. - */ @Override public boolean normalize() throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @@ -2187,11 +1462,7 @@ public class HBaseAdmin implements Admin { }); } - /** - * Query the current state of the region normalizer - * - * @return true if region normalizer is enabled, false otherwise. - */ + @Override public boolean isNormalizerEnabled() throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @Override @@ -2202,11 +1473,7 @@ public class HBaseAdmin implements Admin { }); } - /** - * Turn region normalizer on or off. - * - * @return Previous normalizer value - */ + @Override public boolean setNormalizerRunning(final boolean on) throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @Override @@ -2218,15 +1485,8 @@ public class HBaseAdmin implements Admin { }); } - /** - * Enable/Disable the catalog janitor - * @param enable if true enables the catalog janitor - * @return the previous state - * @throws MasterNotRunningException - */ @Override - public boolean enableCatalogJanitor(final boolean enable) - throws IOException { + public boolean enableCatalogJanitor(final boolean enable) throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @Override public Boolean call(int callTimeout) throws ServiceException { @@ -2236,11 +1496,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Ask for a scan of the catalog table - * @return the number of entries cleaned - * @throws MasterNotRunningException - */ @Override public int runCatalogScan() throws IOException { return executeCallable(new MasterCallable<Integer>(getConnection()) { @@ -2252,10 +1507,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Query on the catalog janitor state (Enabled/Disabled?) - * @throws org.apache.hadoop.hbase.MasterNotRunningException - */ @Override public boolean isCatalogJanitorEnabled() throws IOException { return executeCallable(new MasterCallable<Boolean>(getConnection()) { @@ -2319,21 +1570,13 @@ public class HBaseAdmin implements Admin { }); } - /** - * {@inheritDoc} - */ @Override - public void split(final TableName tableName) - throws IOException { + public void split(final TableName tableName) throws IOException { split(tableName, null); } - /** - * {@inheritDoc} - */ @Override - public void splitRegion(final byte[] regionName) - throws IOException { + public void splitRegion(final byte[] regionName) throws IOException { splitRegion(regionName, null); } @@ -2341,8 +1584,7 @@ public class HBaseAdmin implements Admin { * {@inheritDoc} */ @Override - public void split(final TableName tableName, final byte [] splitPoint) - throws IOException { + public void split(final TableName tableName, final byte [] splitPoint) throws IOException { ZooKeeperWatcher zookeeper = null; try { checkTableExists(tableName); @@ -2373,12 +1615,8 @@ public class HBaseAdmin implements Admin { } } - /** - * {@inheritDoc} - */ @Override - public void splitRegion(final byte[] regionName, final byte [] splitPoint) - throws IOException { + public void splitRegion(final byte[] regionName, final byte [] splitPoint) throws IOException { Pair<HRegionInfo, ServerName> regionServerPair = getRegion(regionName); if (regionServerPair == null) { throw new IllegalArgumentException("Invalid region: " + Bytes.toStringBinary(regionName)); @@ -2406,20 +1644,6 @@ public class HBaseAdmin implements Admin { ProtobufUtil.split(admin, hri, splitPoint); } - /** - * Modify an existing table, more IRB friendly version. Asynchronous operation. - * This means that it may be a while before your schema change is updated across all of the - * table. 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. - * - * @param tableName name of table. - * @param htd 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. - */ @Override public Future<Void> modifyTable(final TableName tableName, final HTableDescriptor htd) throws IOException { @@ -2468,21 +1692,11 @@ public class HBaseAdmin implements Admin { } } - public void modifyTable(final byte[] tableName, final HTableDescriptor htd) - throws IOException { - modifyTable(TableName.valueOf(tableName), htd); - } - - public void modifyTable(final String tableName, final HTableDescriptor htd) - throws IOException { - modifyTable(TableName.valueOf(tableName), htd); - } - /** * @param regionName Name of a region. * @return a pair of HRegionInfo and ServerName if <code>regionName</code> is * a verified region name (we call {@link - * MetaTableAccessor#getRegion(HConnection, byte[])} + * MetaTableAccessor#getRegionLocation(HConnection, byte[])} * else null. * Throw IllegalArgumentException if <code>regionName</code> is null. * @throws IOException @@ -2573,10 +1787,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Shuts down the HBase cluster - * @throws IOException if a remote or network exception occurs - */ @Override public synchronized void shutdown() throws IOException { executeCallable(new MasterCallable<Void>(getConnection()) { @@ -2588,12 +1798,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Shuts down the current HBase master only. - * Does not shutdown the cluster. - * @see #shutdown() - * @throws IOException if a remote or network exception occurs - */ @Override public synchronized void stopMaster() throws IOException { executeCallable(new MasterCallable<Void>(getConnection()) { @@ -2605,12 +1809,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Stop the designated regionserver - * @param hostnamePort Hostname and port delimited by a <code>:</code> as in - * <code>example.org:1234</code> - * @throws IOException if a remote or network exception occurs - */ @Override public synchronized void stopRegionServer(final String hostnamePort) throws IOException { @@ -2627,11 +1825,6 @@ public class HBaseAdmin implements Admin { } } - - /** - * @return cluster status - * @throws IOException if a remote or network exception occurs - */ @Override public ClusterStatus getClusterStatus() throws IOException { return executeCallable(new MasterCallable<ClusterStatus>(getConnection()) { @@ -2643,19 +1836,11 @@ public class HBaseAdmin implements Admin { }); } - /** - * @return Configuration used by the instance. - */ @Override public Configuration getConfiguration() { return this.conf; } - /** - * Create a new namespace - * @param descriptor descriptor which describes the new namespace - * @throws IOException - */ @Override public void createNamespace(final NamespaceDescriptor descriptor) throws IOException { executeCallable(new MasterCallable<Void>(getConnection()) { @@ -2671,11 +1856,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Modify an existing namespace - * @param descriptor descriptor which describes the new namespace - * @throws IOException - */ @Override public void modifyNamespace(final NamespaceDescriptor descriptor) throws IOException { executeCallable(new MasterCallable<Void>(getConnection()) { @@ -2688,11 +1868,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Delete an existing namespace. Only empty namespaces (no tables) can be removed. - * @param name namespace name - * @throws IOException - */ @Override public void deleteNamespace(final String name) throws IOException { executeCallable(new MasterCallable<Void>(getConnection()) { @@ -2705,12 +1880,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Get a namespace descriptor by name - * @param name name of namespace descriptor - * @return A descriptor - * @throws IOException - */ @Override public NamespaceDescriptor getNamespaceDescriptor(final String name) throws IOException { return @@ -2724,11 +1893,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * List available namespace descriptors - * @return List of descriptors - * @throws IOException - */ @Override public NamespaceDescriptor[] listNamespaceDescriptors() throws IOException { return @@ -2747,11 +1911,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * List procedures - * @return procedure list - * @throws IOException - */ @Override public ProcedureInfo[] listProcedures() throws IOException { return @@ -2769,12 +1928,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Get list of table descriptors by namespace - * @param name namespace name - * @return A descriptor - * @throws IOException - */ @Override public HTableDescriptor[] listTableDescriptorsByNamespace(final String name) throws IOException { return @@ -2794,12 +1947,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Get list of table names by namespace - * @param name namespace name - * @return The list of table names in the namespace - * @throws IOException - */ @Override public TableName[] listTableNamesByNamespace(final String name) throws IOException { return @@ -2858,13 +2005,6 @@ public class HBaseAdmin implements Admin { } } - /** - * get the regions of a given table. - * - * @param tableName the name of the table - * @return Ordered list of {@link HRegionInfo}. - * @throws IOException - */ @Override public List<HRegionInfo> getTableRegions(final TableName tableName) throws IOException { @@ -2884,21 +2024,10 @@ public class HBaseAdmin implements Admin { return regions; } - public List<HRegionInfo> getTableRegions(final byte[] tableName) - throws IOException { - return getTableRegions(TableName.valueOf(tableName)); - } - @Override public synchronized void close() throws IOException { } - /** - * Get tableDescriptors - * @param tableNames List of table names - * @return HTD[] the tableDescriptor - * @throws IOException if a remote or network exception occurs - */ @Override public HTableDescriptor[] getTableDescriptorsByTableName(final List<TableName> tableNames) throws IOException { @@ -2933,12 +2062,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Get tableDescriptors - * @param names List of table names - * @return HTD[] the tableDescriptor - * @throws IOException if a remote or network exception occurs - */ @Override public HTableDescriptor[] getTableDescriptors(List<String> names) throws IOException { @@ -3015,18 +2138,12 @@ public class HBaseAdmin implements Admin { } } - /** - * {@inheritDoc} - */ @Override public CompactionState getCompactionState(final TableName tableName) throws IOException { return getCompactionState(tableName, CompactType.NORMAL); } - /** - * {@inheritDoc} - */ @Override public CompactionState getCompactionStateForRegion(final byte[] regionName) throws IOException { @@ -3049,22 +2166,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be - * taken. If the table is disabled, an offline snapshot is taken. - * <p> - * Snapshots are considered unique based on <b>the name of the snapshot</b>. Attempts to take a - * snapshot with the same name (even a different type or with different parameters) will fail with - * a {@link SnapshotCreationException} indicating the duplicate naming. - * <p> - * Snapshot names follow the same naming constraints as tables in HBase. See - * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}. - * @param snapshotName name of the snapshot to be created - * @param tableName name of the table for which snapshot is created - * @throws IOException if a remote or network exception occurs - * @throws SnapshotCreationException if snapshot creation failed - * @throws IllegalArgumentException if the snapshot request is formatted incorrectly - */ @Override public void snapshot(final String snapshotName, final TableName tableName) throws IOException, @@ -3072,86 +2173,16 @@ public class HBaseAdmin implements Admin { snapshot(snapshotName, tableName, SnapshotDescription.Type.FLUSH); } - public void snapshot(final String snapshotName, - final String tableName) throws IOException, - SnapshotCreationException, IllegalArgumentException { - snapshot(snapshotName, TableName.valueOf(tableName), - SnapshotDescription.Type.FLUSH); - } - - /** - * Create snapshot for the given table of given flush type. - * <p> - * Snapshots are considered unique based on <b>the name of the snapshot</b>. Attempts to take a - * snapshot with the same name (even a different type or with different parameters) will fail with - * a {@link SnapshotCreationException} indicating the duplicate naming. - * <p> - * Snapshot names follow the same naming constraints as tables in HBase. - * @param snapshotName name of the snapshot to be created - * @param tableName name of the table for which snapshot is created - * @param flushType if the snapshot should be taken without flush memstore first - * @throws IOException if a remote or network exception occurs - * @throws SnapshotCreationException if snapshot creation failed - * @throws IllegalArgumentException if the snapshot request is formatted incorrectly - */ - public void snapshot(final byte[] snapshotName, final byte[] tableName, - final SnapshotDescription.Type flushType) throws - IOException, SnapshotCreationException, IllegalArgumentException { - snapshot(Bytes.toString(snapshotName), Bytes.toString(tableName), flushType); - } - /** - public void snapshot(final String snapshotName, - * Create a timestamp consistent snapshot for the given table. - final byte[] tableName) throws IOException, - * <p> - * Snapshots are considered unique based on <b>the name of the snapshot</b>. Attempts to take a - * snapshot with the same name (even a different type or with different parameters) will fail - * with a {@link SnapshotCreationException} indicating the duplicate naming. - * <p> - * Snapshot names follow the same naming constraints as tables in HBase. - * @param snapshotName name of the snapshot to be created - * @param tableName name of the table for which snapshot is created - * @throws IOException if a remote or network exception occurs - * @throws SnapshotCreationException if snapshot creation failed - * @throws IllegalArgumentException if the snapshot request is formatted incorrectly - */ - @Override - public void snapshot(final byte[] snapshotName, - final TableName tableName) throws IOException, - SnapshotCreationException, IllegalArgumentException { + @Override + public void snapshot(final byte[] snapshotName, final TableName tableName) + throws IOException, SnapshotCreationException, IllegalArgumentException { snapshot(Bytes.toString(snapshotName), tableName, SnapshotDescription.Type.FLUSH); } - public void snapshot(final byte[] snapshotName, - final byte[] tableName) throws IOException, - SnapshotCreationException, IllegalArgumentException { - snapshot(Bytes.toString(snapshotName), TableName.valueOf(tableName), - SnapshotDescription.Type.FLUSH); - } - - /** - * Create typed snapshot of the table. - * <p> - * Snapshots are considered unique based on <b>the name of the snapshot</b>. Attempts to take a - * snapshot with the same name (even a different type or with different parameters) will fail with - * a {@link SnapshotCreationException} indicating the duplicate naming. - * <p> - * Snapshot names follow the same naming constraints as tables in HBase. See - * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}. - * <p> - * @param snapshotName name to give the snapshot on the filesystem. Must be unique from all other - * snapshots stored on the cluster - * @param tableName name of the table to snapshot - * @param type type of snapshot to take - * @throws IOException we fail to reach the master - * @throws SnapshotCreationException if snapshot creation failed - * @throws IllegalArgumentException if the snapshot request is formatted incorrectly - */ @Override - public void snapshot(final String snapshotName, - final TableName tableName, - SnapshotDescription.Type type) throws IOException, SnapshotCreationException, - IllegalArgumentException { + public void snapshot(final String snapshotName, final TableName tableName, + SnapshotDescription.Type type) + throws IOException, SnapshotCreationException, IllegalArgumentException { SnapshotDescription.Builder builder = SnapshotDescription.newBuilder(); builder.setTable(tableName.getNameAsString()); builder.setName(snapshotName); @@ -3159,41 +2190,6 @@ public class HBaseAdmin implements Admin { snapshot(builder.build()); } - public void snapshot(final String snapshotName, - final String tableName, - SnapshotDescription.Type type) throws IOException, SnapshotCreationException, - IllegalArgumentException { - snapshot(snapshotName, TableName.valueOf(tableName), type); - } - - public void snapshot(final String snapshotName, - final byte[] tableName, - SnapshotDescription.Type type) throws IOException, SnapshotCreationException, - IllegalArgumentException { - snapshot(snapshotName, TableName.valueOf(tableName), type); - } - - /** - * Take a snapshot and wait for the server to complete that snapshot (blocking). - * <p> - * Only a single snapshot should be taken at a time for an instance of HBase, or results may be - * undefined (you can tell multiple HBase clusters to snapshot at the same time, but only one at a - * time for a single cluster). - * <p> - * Snapshots are considered unique based on <b>the name of the snapshot</b>. Attempts to take a - * snapshot with the same name (even a different type or with different parameters) will fail with - * a {@link SnapshotCreationException} indicating the duplicate naming. - * <p> - * Snapshot names follow the same naming constraints as tables in HBase. See - * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}. - * <p> - * You should probably use {@link #snapshot(String, String)} or {@link #snapshot(byte[], byte[])} - * unless you are sure about the type of snapshot that you want to take. - * @param snapshot snapshot to take - * @throws IOException or we lose contact with the master. - * @throws SnapshotCreationException if snapshot failed to be taken - * @throws IllegalArgumentException if the snapshot request is formatted incorrectly - */ @Override public void snapshot(SnapshotDescription snapshot) throws IOException, SnapshotCreationException, IllegalArgumentException { @@ -3235,16 +2231,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Take a snapshot without waiting for the server to complete that snapshot (asynchronous) - * <p> - * Only a single snapshot should be taken at a time, or results may be undefined. - * @param snapshot snapshot to take - * @return response from the server indicating the max time to wait for the snapshot - * @throws IOException if the snapshot did not succeed or we lose contact with the master. - * @throws SnapshotCreationException if snapshot creation failed - * @throws IllegalArgumentException if the snapshot request is formatted incorrectly - */ @Override public SnapshotResponse takeSnapshotAsync(SnapshotDescription snapshot) throws IOException, SnapshotCreationException { @@ -3260,26 +2246,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Check the current state of the passed snapshot. - * <p> - * There are three possible states: - * <ol> - * <li>running - returns <tt>false</tt></li> - * <li>finished - returns <tt>true</tt></li> - * <li>finished with error - throws the exception that caused the snapshot to fail</li> - * </ol> - * <p> - * The cluster only knows about the most recent snapshot. Therefore, if another snapshot has been - * run/started since the snapshot your are checking, you will recieve an - * {@link UnknownSnapshotException}. - * @param snapshot description of the snapshot to check - * @return <tt>true</tt> if the snapshot is completed, <tt>false</tt> if the snapshot is still - * running - * @throws IOException if we have a network issue - * @throws HBaseSnapshotException if the snapshot failed - * @throws UnknownSnapshotException if the requested snapshot is unknown - */ @Override public boolean isSnapshotFinished(final SnapshotDescription snapshot) throws IOException, HBaseSnapshotException, UnknownSnapshotException { @@ -3293,38 +2259,12 @@ public class HBaseAdmin implements Admin { }).getDone(); } - /** - * Restore the specified snapshot on the original table. (The table must be disabled) - * If the "hbase.snapshot.restore.take.failsafe.snapshot" configuration property - * is set to true, a snapshot of the current table is taken - * before executing the restore operation. - * In case of restore failure, the failsafe snapshot will be restored. - * If the restore completes without problem the failsafe snapshot is deleted. - * - * @param snapshotName name of the snapshot to restore - * @throws IOException if a remote or network exception occurs - * @throws RestoreSnapshotException if snapshot failed to be restored - * @throws IllegalArgumentException if the restore request is formatted incorrectly - */ @Override public void restoreSnapshot(final byte[] snapshotName) throws IOException, RestoreSnapshotException { restoreSnapshot(Bytes.toString(snapshotName)); } - /** - * Restore the specified snapshot on the original table. (The table must be disabled) - * If the "hbase.snapshot.restore.take.failsafe.snapshot" configuration property - * is set to true, a snapshot of the current table is taken - * before executing the restore operation. - * In case of restore failure, the failsafe snapshot will be restored. - * If the restore completes without problem the failsafe snapshot is deleted. - * - * @param snapshotName name of the snapshot to restore - * @throws IOException if a remote or network exception occurs - * @throws RestoreSnapshotException if snapshot failed to be restored - * @throws IllegalArgumentException if the restore request is formatted incorrectly - */ @Override public void restoreSnapshot(final String snapshotName) throws IOException, RestoreSnapshotException { @@ -3333,44 +2273,12 @@ public class HBaseAdmin implements Admin { restoreSnapshot(snapshotName, takeFailSafeSnapshot); } - /** - * Restore the specified snapshot on the original table. (The table must be disabled) - * If 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken - * before executing the restore operation. - * In case of restore failure, the failsafe snapshot will be restored. - * If the restore completes without problem the failsafe snapshot is deleted. - * - * The failsafe snapshot name is configurable by using the property - * "hbase.snapshot.restore.failsafe.name". - * - * @param snapshotName name of the snapshot to restore - * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken - * @throws IOException if a remote or network exception occurs - * @throws RestoreSnapshotException if snapshot failed to be restored - * @throws IllegalArgumentException if the restore request is formatted incorrectly - */ @Override public void restoreSnapshot(final byte[] snapshotName, final boolean takeFailSafeSnapshot) throws IOException, RestoreSnapshotException { restoreSnapshot(Bytes.toString(snapshotName), takeFailSafeSnapshot); } - /** - * Restore the specified snapshot on the original table. (The table must be disabled) - * If 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken - * before executing the restore operation. - * In case of restore failure, the failsafe snapshot will be restored. - * If the restore completes without problem the failsafe snapshot is deleted. - * - * The failsafe snapshot name is configurable by using the property - * "hbase.snapshot.restore.failsafe.name". - * - * @param snapshotName name of the snapshot to restore - * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken - * @throws IOException if a remote or network exception occurs - * @throws RestoreSnapshotException if snapshot failed to be restored - * @throws IllegalArgumentException if the restore request is formatted incorrectly - */ @Override public void restoreSnapshot(final String snapshotName, boolean takeFailSafeSnapshot) throws IOException, RestoreSnapshotException { @@ -3445,64 +2353,12 @@ public class HBaseAdmin implements Admin { } } - /** - * Create a new table by cloning the snapshot content. - * - * @param snapshotName name of the snapshot to be cloned - * @param tableName name of the table where the snapshot will be restored - * @throws IOException if a remote or network exception occurs - * @throws TableExistsException if table to be created already exists - * @throws RestoreSnapshotException if snapshot failed to be cloned - * @throws IllegalArgumentException if the specified table has not a valid name - */ - public void cloneSnapshot(final byte[] snapshotName, final byte[] tableName) - throws IOException, TableExistsException, RestoreSnapshotException { - cloneSnapshot(Bytes.toString(snapshotName), TableName.valueOf(tableName)); - } - - /** - * Create a new table by cloning the snapshot content. - * - * @param snapshotName name of the snapshot to be cloned - * @param tableName name of the table where the snapshot will be restored - * @throws IOException if a remote or network exception occurs - * @throws TableExistsException if table to be created already exists - * @throws RestoreSnapshotException if snapshot failed to be cloned - * @throws IllegalArgumentException if the specified table has not a valid name - */ @Override public void cloneSnapshot(final byte[] snapshotName, final TableName tableName) throws IOException, TableExistsException, RestoreSnapshotException { cloneSnapshot(Bytes.toString(snapshotName), tableName); } - - - /** - * Create a new table by cloning the snapshot content. - * - * @param snapshotName name of the snapshot to be cloned - * @param tableName name of the table where the snapshot will be restored - * @throws IOException if a remote or network exception occurs - * @throws TableExistsException if table to be created already exists - * @throws RestoreSnapshotException if snapshot failed to be cloned - * @throws IllegalArgumentException if the specified table has not a valid name - */ - public void cloneSnapshot(final String snapshotName, final String tableName) - throws IOException, TableExistsException, RestoreSnapshotException, InterruptedException { - cloneSnapshot(snapshotName, TableName.valueOf(tableName)); - } - - /** - * Create a new table by cloning the snapshot content. - * - * @param snapshotName name of the snapshot to be cloned - * @param tableName name of the table where the snapshot will be restored - * @throws IOException if a remote or network exception occurs - * @throws TableExistsException if table to be created already exists - * @throws RestoreSnapshotException if snapshot failed to be cloned - * @throws IllegalArgumentException if the specified table has not a valid name - */ @Override public void cloneSnapshot(final String snapshotName, final TableName tableName) throws IOException, TableExistsException, RestoreSnapshotException { @@ -3513,20 +2369,9 @@ public class HBaseAdmin implements Admin { waitUntilTableIsEnabled(tableName); } - /** - * Execute a distributed procedure on a cluster synchronously with return data - * - * @param signature A distributed procedure is uniquely identified - * by its signature (default the root ZK node name of the procedure). - * @param instance The instance name of the procedure. For some procedures, this parameter is - * optional. - * @param props Property/Value pairs of properties passing to the procedure - * @return data returned after procedure execution. null if no return data. - * @throws IOException - */ @Override - public byte[] execProcedureWithRet(String signature, String instance, - Map<String, String> props) throws IOException { + public byte[] execProcedureWithRet(String signature, String instance, Map<String, String> props) + throws IOException { ProcedureDescription.Builder builder = ProcedureDescription.newBuilder(); builder.setSignature(signature).setInstance(instance); for (Entry<String, String> entry : props.entrySet()) { @@ -3548,19 +2393,10 @@ public class HBaseAdmin implements Admin { return response.hasReturnData() ? response.getReturnData().toByteArray() : null; } - /** - * Execute a distributed procedure on a cluster. - * - * @param signature A distributed procedure is uniquely identified - * by its signature (default the root ZK node name of the procedure). - * @param instance The instance name of the procedure. For some procedures, this parameter is - * optional. - * @param props Property/Value pairs of properties passing to the procedure - * @throws IOException - */ + @Override - public void execProcedure(String signature, String instance, - Map<String, String> props) throws IOException { + public void execProcedure(String signature, String instance, Map<String, String> props) + throws IOException { ProcedureDescription.Builder builder = ProcedureDescription.newBuilder(); builder.setSignature(signature).setInstance(instance); for (Entry<String, String> entry : props.entrySet()) { @@ -3608,23 +2444,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Check the current state of the specified procedure. - * <p> - * There are three possible states: - * <ol> - * <li>running - returns <tt>false</tt></li> - * <li>finished - returns <tt>true</tt></li> - * <li>finished with error - throws the exception that caused the procedure to fail</li> - * </ol> - * <p> - * - * @param signature The signature that uniquely identifies a procedure - * @param instance The instance name of the procedure - * @param props Property/Value pairs of properties passing to the procedure - * @return true if the specified procedure is finished successfully, false if it is still running - * @throws IOException if the specified procedure finished with error - */ @Override public boolean isProcedureFinished(String signature, String instance, Map<String, String> props) throws IOException { @@ -3656,8 +2475,7 @@ public class HBaseAdmin implements Admin { * @throws RestoreSnapshotException if snapshot failed to be restored * @throws IllegalArgumentException if the restore request is formatted incorrectly */ - private void internalRestoreSnapshot(final String snapshotName, final TableName - tableName) + private void internalRestoreSnapshot(final String snapshotName, final TableName tableName) throws IOException, RestoreSnapshotException { SnapshotDescription snapshot = SnapshotDescription.newBuilder() .setName(snapshotName).setTable(tableName.getNameAsString()).build(); @@ -3722,11 +2540,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * List completed snapshots. - * @return a list of snapshot descriptors for completed snapshots - * @throws IOException if a network error occurs - */ @Override public List<SnapshotDescription> listSnapshots() throws IOException { return executeCallable(new MasterCallable<List<SnapshotDescription>>(getConnection()) { @@ -3738,25 +2551,11 @@ public class HBaseAdmin implements Admin { }); } - /** - * List all the completed snapshots matching the given regular expression. - * - * @param regex The regular expression to match against - * @return - returns a List of SnapshotDescription - * @throws IOException if a remote or network exception occurs - */ @Override public List<SnapshotDescription> listSnapshots(String regex) throws IOException { return listSnapshots(Pattern.compile(regex)); } - /** - * List all the completed snapshots matching the given pattern. - * - * @param pattern The compiled regular expression to match against - * @return - returns a List of SnapshotDescription - * @throws IOException if a remote or network exception occurs - */ @Override public List<SnapshotDescription> listSnapshots(Pattern pattern) throws IOException { List<SnapshotDescription> matched = new LinkedList<SnapshotDescription>(); @@ -3769,28 +2568,12 @@ public class HBaseAdmin implements Admin { return matched; } - /** - * List all the completed snapshots matching the given table name regular expression and snapshot - * name regular expression. - * @param tableNameRegex The table name regular expression to match against - * @param snapshotNameRegex The snapshot name regular expression to match against - * @return returns a List of completed SnapshotDescription - * @throws IOException if a remote or network exception occurs - */ @Override public List<SnapshotDescription> listTableSnapshots(String tableNameRegex, String snapshotNameRegex) throws IOException { return listTableSnapshots(Pattern.compile(tableNameRegex), Pattern.compile(snapshotNameRegex)); } - /** - * List all the completed snapshots matching the given table name regular expression and snapshot - * name regular expression. - * @param tableNamePattern The compiled table name regular expression to match against - * @param snapshotNamePattern The compiled snapshot name regular expression to match against - * @return returns a List of completed SnapshotDescription - * @throws IOException if a remote or network exception occurs - */ @Override public List<SnapshotDescription> listTableSnapshots(Pattern tableNamePattern, Pattern snapshotNamePattern) throws IOException { @@ -3808,21 +2591,11 @@ public class HBaseAdmin implements Admin { return tableSnapshots; } - /** - * Delete an existing snapshot. - * @param snapshotName name of the snapshot - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteSnapshot(final byte[] snapshotName) throws IOException { deleteSnapshot(Bytes.toString(snapshotName)); } - /** - * Delete an existing snapshot. - * @param snapshotName name of the snapshot - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteSnapshot(final String snapshotName) throws IOException { // make sure the snapshot is possibly valid @@ -3840,21 +2613,11 @@ public class HBaseAdmin implements Admin { }); } - /** - * Delete existing snapshots whose names match the pattern passed. - * @param regex The regular expression to match against - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteSnapshots(final String regex) throws IOException { deleteSnapshots(Pattern.compile(regex)); } - /** - * Delete existing snapshots whose names match the pattern passed. - * @param pattern pattern for names of the snapshot to match - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteSnapshots(final Pattern pattern) throws IOException { List<SnapshotDescription> snapshots = listSnapshots(pattern); @@ -3880,26 +2643,12 @@ public class HBaseAdmin implements Admin { }); } - /** - * Delete all existing snapshots matching the given table name regular expression and snapshot - * name regular expression. - * @param tableNameRegex The table name regular expression to match against - * @param snapshotNameRegex The snapshot name regular expression to match against - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteTableSnapshots(String tableNameRegex, String snapshotNameRegex) throws IOException { deleteTableSnapshots(Pattern.compile(tableNameRegex), Pattern.compile(snapshotNameRegex)); } - /** - * Delete all existing snapshots matching the given table name regular expression and snapshot - * name regular expression. - * @param tableNamePattern The compiled table name regular expression to match against - * @param snapshotNamePattern The compiled snapshot name regular expression to match against - * @throws IOException if a remote or network exception occurs - */ @Override public void deleteTableSnapshots(Pattern tableNamePattern, Pattern snapshotNamePattern) throws IOException { @@ -3914,12 +2663,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Apply the new quota settings. - * - * @param quota the quota settings - * @throws IOException if a remote or network exception occurs - */ @Override public void setQuota(final QuotaSettings quota) throws IOException { executeCallable(new MasterCallable<Void>(getConnection()) { @@ -3931,13 +2674,6 @@ public class HBaseAdmin implements Admin { }); } - /** - * Return a Quota Scanner to list the quotas based on the filter. - * - * @param filter the quota settings filter - * @return the quota scanner - * @throws IOException if a remote or network exception occurs - */ @Override public QuotaRetriever getQuotaRetriever(final QuotaFilter filter) throws IOException { return QuotaRetriever.open(conf, filter); @@ -3958,27 +2694,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Creates and returns a {@link com.google.protobuf.RpcChannel} instance - * connected to the active master. - * - * <p> - * The obtained {@link com.google.protobuf.RpcChannel} instance can be used to access a published - * coprocessor {@link com.google.protobuf.Service} using standard protobuf service invocations: - * </p> - * - * <div style="background-color: #cccccc; padding: 2px"> - * <blockquote><pre> - * CoprocessorRpcChannel channel = myAdmin.coprocessorService(); - * MyService.BlockingInterface service = MyService.newBlockingStub(channel); - * MyCallRequest request = MyCallRequest.newBuilder() - * ... - * .build(); - * MyCallResponse response = service.myCall(null, request); - * </pre></blockquote></div> - * - * @return A MasterCoprocessorRpcChannel instance - */ @Override public CoprocessorRpcChannel coprocessorService() { return new MasterCoprocessorRpcChannel(connection); @@ -4000,28 +2715,6 @@ public class HBaseAdmin implements Admin { } } - /** - * Creates and returns a {@link com.google.protobuf.RpcChannel} instance - * connected to the passed region server. - * - * <p> - * The obtained {@link com.google.protobuf.RpcChannel} instance can be used to access a published - * coprocessor {@link com.google.protobuf.Service} using standard protobuf service invocations: - * </p> - * - * <div style="background-color: #cccccc; padding: 2px"> - * <blockquote><pre> - * CoprocessorRpcChannel channel = myAdmin.coprocessorService(serverName); - * MyService.BlockingInterface service = MyService.newBlockingStub(channel); - * MyCallRequest request = MyCallRequest.newBuilder() - * ... - * .build(); - * MyCallResponse response = service.myCall(null, request); - * </pre></blockquote></div> - * - * @param sn the server name to which the endpoint call is made - * @return A RegionServerCoprocessorRpcChannel instance - */ @Override public CoprocessorRpcChannel coprocessorService(ServerName sn) { return new RegionServerCoprocessorRpcChannel(connection, sn);
http://git-wip-us.apache.org/repos/asf/hbase/blob/6adce675/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java index dffde55..d9c7caa 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java @@ -718,7 +718,7 @@ public class IntegrationTestDDLMasterFailover extends IntegrationTestBase { } TableName tableName = selected.getTableName(); LOG.info("Deleting column family: " + cfd + " from table: " + tableName); - admin.deleteColumn(tableName, cfd.getName()); + admin.deleteColumnFamily(tableName, cfd.getName()); // assertion HTableDescriptor freshTableDesc = admin.getTableDescriptor(tableName); Assert.assertFalse("Column family: " + cfd + " was not added",