HBASE-18736 Cleanup the HTD/HCD for Admin
This commit is contained in:
parent
476973654c
commit
32ddb1f604
|
@ -21,12 +21,11 @@ package org.apache.hbase.archetypes.exemplars.client;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.NavigableMap;
|
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.NamespaceDescriptor;
|
||||||
import org.apache.hadoop.hbase.NamespaceNotFoundException;
|
import org.apache.hadoop.hbase.NamespaceNotFoundException;
|
||||||
import org.apache.hadoop.hbase.TableName;
|
import org.apache.hadoop.hbase.TableName;
|
||||||
import org.apache.hadoop.hbase.client.Admin;
|
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.Connection;
|
||||||
import org.apache.hadoop.hbase.client.ConnectionFactory;
|
import org.apache.hadoop.hbase.client.ConnectionFactory;
|
||||||
import org.apache.hadoop.hbase.client.Delete;
|
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.Put;
|
||||||
import org.apache.hadoop.hbase.client.Result;
|
import org.apache.hadoop.hbase.client.Result;
|
||||||
import org.apache.hadoop.hbase.client.Table;
|
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;
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -110,9 +111,10 @@ public final class HelloHBase {
|
||||||
System.out.println("Creating Table [" + MY_TABLE_NAME.getNameAsString()
|
System.out.println("Creating Table [" + MY_TABLE_NAME.getNameAsString()
|
||||||
+ "], with one Column Family ["
|
+ "], with one Column Family ["
|
||||||
+ Bytes.toString(MY_COLUMN_FAMILY_NAME) + "].");
|
+ Bytes.toString(MY_COLUMN_FAMILY_NAME) + "].");
|
||||||
|
TableDescriptor desc = TableDescriptorBuilder.newBuilder(MY_TABLE_NAME)
|
||||||
admin.createTable(new HTableDescriptor(MY_TABLE_NAME)
|
.addColumnFamily(ColumnFamilyDescriptorBuilder.of(MY_COLUMN_FAMILY_NAME))
|
||||||
.addFamily(new HColumnDescriptor(MY_COLUMN_FAMILY_NAME)));
|
.build();
|
||||||
|
admin.createTable(desc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.hbase.Abortable;
|
import org.apache.hadoop.hbase.Abortable;
|
||||||
import org.apache.hadoop.hbase.ClusterStatus;
|
import org.apache.hadoop.hbase.ClusterStatus;
|
||||||
import org.apache.hadoop.hbase.ClusterStatus.Options;
|
import org.apache.hadoop.hbase.ClusterStatus.Options;
|
||||||
import org.apache.hadoop.hbase.HColumnDescriptor;
|
|
||||||
import org.apache.hadoop.hbase.HRegionInfo;
|
import org.apache.hadoop.hbase.HRegionInfo;
|
||||||
import org.apache.hadoop.hbase.HTableDescriptor;
|
import org.apache.hadoop.hbase.HTableDescriptor;
|
||||||
import org.apache.hadoop.hbase.NamespaceDescriptor;
|
import org.apache.hadoop.hbase.NamespaceDescriptor;
|
||||||
|
@ -282,23 +281,6 @@ public interface Admin extends Abortable, Closeable {
|
||||||
TableDescriptor listTableDescriptor(final TableName tableName)
|
TableDescriptor listTableDescriptor(final TableName tableName)
|
||||||
throws TableNotFoundException, IOException;
|
throws TableNotFoundException, IOException;
|
||||||
|
|
||||||
/**
|
|
||||||
* 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
|
|
||||||
* @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.
|
* Creates a new table. Synchronous operation.
|
||||||
*
|
*
|
||||||
|
@ -311,31 +293,6 @@ public interface Admin extends Abortable, Closeable {
|
||||||
*/
|
*/
|
||||||
void createTable(TableDescriptor desc) throws IOException;
|
void createTable(TableDescriptor desc) throws IOException;
|
||||||
|
|
||||||
/**
|
|
||||||
* 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
|
|
||||||
* @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
|
* 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
|
* the end key of the first region of the table, and the end key specified will become the start
|
||||||
|
@ -356,27 +313,6 @@ public interface Admin extends Abortable, Closeable {
|
||||||
void createTable(TableDescriptor desc, byte[] startKey, byte[] endKey, int numRegions)
|
void createTable(TableDescriptor desc, byte[] startKey, byte[] endKey, int numRegions)
|
||||||
throws IOException;
|
throws IOException;
|
||||||
|
|
||||||
/**
|
|
||||||
* 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
|
|
||||||
* @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.
|
* 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
|
* The total number of regions created will be the number of split keys plus one. Synchronous
|
||||||
|
@ -393,29 +329,6 @@ public interface Admin extends Abortable, Closeable {
|
||||||
*/
|
*/
|
||||||
void createTable(final TableDescriptor desc, byte[][] splitKeys) throws IOException;
|
void createTable(final TableDescriptor desc, byte[][] splitKeys) throws IOException;
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
* @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.
|
* 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.
|
* You can use Future.get(long, TimeUnit) to wait on the operation to complete.
|
||||||
|
@ -718,8 +631,10 @@ public interface Admin extends Abortable, Closeable {
|
||||||
* Use {@link #addColumnFamily(TableName, ColumnFamilyDescriptor)}.
|
* Use {@link #addColumnFamily(TableName, ColumnFamilyDescriptor)}.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
void addColumn(final TableName tableName, final HColumnDescriptor columnFamily)
|
default void addColumn(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
|
||||||
throws IOException;
|
throws IOException {
|
||||||
|
addColumnFamily(tableName, columnFamily);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a column family to an existing table.
|
* Add a column family to an existing table.
|
||||||
|
@ -798,8 +713,10 @@ public interface Admin extends Abortable, Closeable {
|
||||||
* Use {@link #modifyColumnFamily(TableName, ColumnFamilyDescriptor)}.
|
* Use {@link #modifyColumnFamily(TableName, ColumnFamilyDescriptor)}.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
void modifyColumn(final TableName tableName, final HColumnDescriptor columnFamily)
|
default void modifyColumn(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
|
||||||
throws IOException;
|
throws IOException {
|
||||||
|
modifyColumnFamily(tableName, columnFamily);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modify an existing column family on a table.
|
* 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.
|
* Modify an existing table, more IRB friendly version.
|
||||||
*
|
*
|
||||||
* @param tableName name of table.
|
* @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
|
* @throws IOException if a remote or network exception occurs
|
||||||
* @deprecated since 2.0 version and will be removed in 3.0 version.
|
* @deprecated since 2.0 version and will be removed in 3.0 version.
|
||||||
* use {@link #modifyTable(TableDescriptor)}
|
* use {@link #modifyTable(TableDescriptor)}
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
void modifyTable(final TableName tableName, final HTableDescriptor htd)
|
void modifyTable(final TableName tableName, final TableDescriptor td)
|
||||||
throws IOException;
|
throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1257,7 +1174,7 @@ public interface Admin extends Abortable, Closeable {
|
||||||
* operation to complete.
|
* operation to complete.
|
||||||
*
|
*
|
||||||
* @param tableName name of table.
|
* @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
|
* @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
|
* @return the result of the async modify. You can use Future.get(long, TimeUnit) to wait on the
|
||||||
* operation to complete
|
* operation to complete
|
||||||
|
@ -1265,7 +1182,7 @@ public interface Admin extends Abortable, Closeable {
|
||||||
* use {@link #modifyTableAsync(TableDescriptor)}
|
* use {@link #modifyTableAsync(TableDescriptor)}
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
Future<Void> modifyTableAsync(final TableName tableName, final HTableDescriptor htd)
|
Future<Void> modifyTableAsync(final TableName tableName, final TableDescriptor td)
|
||||||
throws IOException;
|
throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -994,18 +994,6 @@ public class HBaseAdmin implements Admin {
|
||||||
return getAlterStatus(TableName.valueOf(tableName));
|
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
|
@Override
|
||||||
public void addColumnFamily(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
|
public void addColumnFamily(final TableName tableName, final ColumnFamilyDescriptor columnFamily)
|
||||||
throws IOException {
|
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
|
@Override
|
||||||
public void modifyColumnFamily(final TableName tableName,
|
public void modifyColumnFamily(final TableName tableName,
|
||||||
final ColumnFamilyDescriptor columnFamily) throws IOException {
|
final ColumnFamilyDescriptor columnFamily) throws IOException {
|
||||||
|
@ -1872,29 +1848,19 @@ public class HBaseAdmin implements Admin {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void modifyTable(final TableName tableName, final HTableDescriptor htd)
|
public void modifyTable(final TableName tableName, final TableDescriptor td)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
get(modifyTableAsync(tableName, htd), syncWaitTimeout, TimeUnit.MILLISECONDS);
|
get(modifyTableAsync(tableName, td), syncWaitTimeout, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Future<Void> modifyTableAsync(final TableName tableName, final HTableDescriptor htd)
|
public Future<Void> modifyTableAsync(final TableName tableName, final TableDescriptor td)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
if (!tableName.equals(htd.getTableName())) {
|
if (!tableName.equals(td.getTableName())) {
|
||||||
throw new IllegalArgumentException("the specified table name '" + tableName +
|
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(
|
return modifyTableAsync(td);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ModifyTableFuture extends TableFuture<Void> {
|
private static class ModifyTableFuture extends TableFuture<Void> {
|
||||||
|
|
|
@ -243,12 +243,8 @@ public class HTable implements Table {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableDescriptor getDescriptor() throws IOException {
|
public TableDescriptor getDescriptor() throws IOException {
|
||||||
HTableDescriptor htd = HBaseAdmin.getHTableDescriptor(tableName, connection, rpcCallerFactory,
|
return HBaseAdmin.getTableDescriptor(tableName, connection, rpcCallerFactory,
|
||||||
rpcControllerFactory, operationTimeout, readRpcTimeout);
|
rpcControllerFactory, operationTimeout, readRpcTimeout);
|
||||||
if (htd != null) {
|
|
||||||
return new ImmutableHTableDescriptor(htd);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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() {
|
private void printSchema() {
|
||||||
System.out.println("Table Descriptor");
|
System.out.println("Table Descriptor");
|
||||||
|
|
Loading…
Reference in New Issue