@InterfaceAudience.Public @InterfaceStability.Evolving public class HBaseAdmin extends Object implements Abortable, Closeable
See HTable to add, update, and delete data from an individual table.
 
Currently HBaseAdmin instances are not expected to be long-lived. For example, an HBaseAdmin instance will not ride over a Master restart.
| Constructor and Description | 
|---|
HBaseAdmin(org.apache.hadoop.conf.Configuration c)
Constructor. 
 | 
HBaseAdmin(HConnection connection)
Constructor for externally managed HConnections. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
abort(String why,
     Throwable e)
Abort the server or client. 
 | 
void | 
addColumn(byte[] tableName,
         HColumnDescriptor column)
Add a column to an existing table. 
 | 
void | 
addColumn(String tableName,
         HColumnDescriptor column)
Add a column to an existing table. 
 | 
void | 
addColumn(TableName tableName,
         HColumnDescriptor column)
Add a column to an existing table. 
 | 
void | 
assign(byte[] regionName)  | 
boolean | 
balancer()
Invoke the balancer. 
 | 
static void | 
checkHBaseAvailable(org.apache.hadoop.conf.Configuration conf)
Check to see if HBase is running. 
 | 
void | 
cloneSnapshot(byte[] snapshotName,
             byte[] tableName)
Create a new table by cloning the snapshot content. 
 | 
void | 
cloneSnapshot(byte[] snapshotName,
             TableName tableName)
Create a new table by cloning the snapshot content. 
 | 
void | 
cloneSnapshot(String snapshotName,
             String tableName)
Create a new table by cloning the snapshot content. 
 | 
void | 
cloneSnapshot(String snapshotName,
             TableName tableName)
Create a new table by cloning the snapshot content. 
 | 
void | 
close()  | 
void | 
closeRegion(byte[] regionname,
           String serverName)
Close a region. 
 | 
void | 
closeRegion(ServerName sn,
           HRegionInfo hri)
Close a region. 
 | 
void | 
closeRegion(String regionname,
           String serverName)
Close a region. 
 | 
boolean | 
closeRegionWithEncodedRegionName(String encodedRegionName,
                                String serverName)
For expert-admins. 
 | 
void | 
compact(byte[] tableNameOrRegionName)
Compact a table or an individual region. 
 | 
void | 
compact(byte[] tableNameOrRegionName,
       byte[] columnFamily)
Compact a column family within a table or region. 
 | 
void | 
compact(String tableNameOrRegionName)
Compact a table or an individual region. 
 | 
void | 
compact(String tableOrRegionName,
       String columnFamily)
Compact a column family within a table or region. 
 | 
CoprocessorRpcChannel | 
coprocessorService()
Creates and returns a  
RpcChannel instance
 connected to the active master. | 
void | 
createNamespace(NamespaceDescriptor descriptor)
Create a new namespace 
 | 
void | 
createTable(HTableDescriptor desc)
Creates a new table. 
 | 
void | 
createTable(HTableDescriptor desc,
           byte[][] splitKeys)
Creates a new table with an initial set of empty regions defined by the
 specified split keys. 
 | 
void | 
createTable(HTableDescriptor desc,
           byte[] startKey,
           byte[] endKey,
           int numRegions)
Creates a new table with the specified number of regions. 
 | 
void | 
createTableAsync(HTableDescriptor desc,
                byte[][] splitKeys)
Creates a new table but does not block and wait for it to come online. 
 | 
void | 
deleteColumn(byte[] tableName,
            String columnName)
Delete a column from a table. 
 | 
void | 
deleteColumn(String tableName,
            String columnName)
Delete a column from a table. 
 | 
void | 
deleteColumn(TableName tableName,
            byte[] columnName)
Delete a column from a table. 
 | 
void | 
deleteNamespace(String name)
Delete an existing namespace. 
 | 
void | 
deleteSnapshot(byte[] snapshotName)
Delete an existing snapshot. 
 | 
void | 
deleteSnapshot(String snapshotName)
Delete an existing snapshot. 
 | 
void | 
deleteSnapshots(Pattern pattern)
Delete existing snapshots whose names match the pattern passed. 
 | 
void | 
deleteSnapshots(String regex)
Delete existing snapshots whose names match the pattern passed. 
 | 
void | 
deleteTable(byte[] tableName)  | 
void | 
deleteTable(String tableName)  | 
void | 
deleteTable(TableName tableName)
Deletes a table. 
 | 
HTableDescriptor[] | 
deleteTables(Pattern pattern)
Delete tables matching the passed in pattern and wait on completion. 
 | 
HTableDescriptor[] | 
deleteTables(String regex)
Deletes tables matching the passed in pattern and wait on completion. 
 | 
void | 
disableTable(byte[] tableName)  | 
void | 
disableTable(String tableName)  | 
void | 
disableTable(TableName tableName)
Disable table and wait on completion. 
 | 
void | 
disableTableAsync(byte[] tableName)  | 
void | 
disableTableAsync(String tableName)  | 
void | 
disableTableAsync(TableName tableName)
Starts the disable of a table. 
 | 
HTableDescriptor[] | 
disableTables(Pattern pattern)
Disable tables matching the passed in pattern and wait on completion. 
 | 
HTableDescriptor[] | 
disableTables(String regex)
Disable tables matching the passed in pattern and wait on completion. 
 | 
boolean | 
enableCatalogJanitor(boolean enable)
Enable/Disable the catalog janitor 
 | 
void | 
enableTable(byte[] tableName)  | 
void | 
enableTable(String tableName)  | 
void | 
enableTable(TableName tableName)
Enable a table. 
 | 
void | 
enableTableAsync(byte[] tableName)  | 
void | 
enableTableAsync(String tableName)  | 
void | 
enableTableAsync(TableName tableName)
Brings a table on-line (enables it). 
 | 
HTableDescriptor[] | 
enableTables(Pattern pattern)
Enable tables matching the passed in pattern and wait on completion. 
 | 
HTableDescriptor[] | 
enableTables(String regex)
Enable tables matching the passed in pattern and wait on completion. 
 | 
void | 
execProcedure(String signature,
             String instance,
             Map<String,String> props)
Execute a distributed procedure on a cluster. 
 | 
void | 
flush(byte[] tableNameOrRegionName)
Flush a table or an individual region. 
 | 
void | 
flush(String tableNameOrRegionName)
Flush a table or an individual region. 
 | 
Pair<Integer,Integer> | 
getAlterStatus(byte[] tableName)
Get the status of alter command - indicates how many regions have received
 the updated schema Asynchronous operation. 
 | 
Pair<Integer,Integer> | 
getAlterStatus(TableName tableName)
Get the status of alter command - indicates how many regions have received
 the updated schema Asynchronous operation. 
 | 
ClusterStatus | 
getClusterStatus()  | 
AdminProtos.GetRegionInfoResponse.CompactionState | 
getCompactionState(byte[] tableNameOrRegionName)
Get the current compaction state of a table or region. 
 | 
AdminProtos.GetRegionInfoResponse.CompactionState | 
getCompactionState(String tableNameOrRegionName)
Get the current compaction state of a table or region. 
 | 
org.apache.hadoop.conf.Configuration | 
getConfiguration()  | 
HConnection | 
getConnection()  | 
String[] | 
getMasterCoprocessors()  | 
NamespaceDescriptor | 
getNamespaceDescriptor(String name)
Get a namespace descriptor by name 
 | 
List<HRegionInfo> | 
getOnlineRegions(ServerName sn)
Get all the online regions on a region server. 
 | 
HTableDescriptor | 
getTableDescriptor(byte[] tableName)  | 
HTableDescriptor | 
getTableDescriptor(TableName tableName)
Method for getting the tableDescriptor 
 | 
HTableDescriptor[] | 
getTableDescriptors(List<String> names)
Get tableDescriptors 
 | 
HTableDescriptor[] | 
getTableDescriptorsByTableName(List<TableName> tableNames)
Get tableDescriptors 
 | 
String[] | 
getTableNames()
Deprecated.  
 | 
String[] | 
getTableNames(Pattern pattern)
Deprecated.  
 | 
String[] | 
getTableNames(String regex)
Deprecated.  
 | 
List<HRegionInfo> | 
getTableRegions(byte[] tableName)  | 
List<HRegionInfo> | 
getTableRegions(TableName tableName)
get the regions of a given table. 
 | 
boolean | 
isAborted()
Check if the server or client was aborted. 
 | 
boolean | 
isCatalogJanitorEnabled()
Query on the catalog janitor state (Enabled/Disabled?) 
 | 
boolean | 
isMasterRunning()  | 
boolean | 
isProcedureFinished(String signature,
                   String instance,
                   Map<String,String> props)
Check the current state of the specified procedure. 
 | 
boolean | 
isSnapshotFinished(HBaseProtos.SnapshotDescription snapshot)
Check the current state of the passed snapshot. 
 | 
boolean | 
isTableAvailable(byte[] tableName)  | 
boolean | 
isTableAvailable(byte[] tableName,
                byte[][] splitKeys)  | 
boolean | 
isTableAvailable(String tableName)  | 
boolean | 
isTableAvailable(String tableName,
                byte[][] splitKeys)  | 
boolean | 
isTableAvailable(TableName tableName)  | 
boolean | 
isTableAvailable(TableName tableName,
                byte[][] splitKeys)
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. 
 | 
boolean | 
isTableDisabled(byte[] tableName)  | 
boolean | 
isTableDisabled(String tableName)  | 
boolean | 
isTableDisabled(TableName tableName)  | 
boolean | 
isTableEnabled(byte[] tableName)  | 
boolean | 
isTableEnabled(String tableName)  | 
boolean | 
isTableEnabled(TableName tableName)  | 
NamespaceDescriptor[] | 
listNamespaceDescriptors()
List available namespace descriptors 
 | 
List<HBaseProtos.SnapshotDescription> | 
listSnapshots()
List completed snapshots. 
 | 
List<HBaseProtos.SnapshotDescription> | 
listSnapshots(Pattern pattern)
List all the completed snapshots matching the given pattern. 
 | 
List<HBaseProtos.SnapshotDescription> | 
listSnapshots(String regex)
List all the completed snapshots matching the given regular expression. 
 | 
HTableDescriptor[] | 
listTableDescriptorsByNamespace(String name)
Get list of table descriptors by namespace 
 | 
TableName[] | 
listTableNames()
List all of the names of userspace tables. 
 | 
TableName[] | 
listTableNamesByNamespace(String name)
Get list of table names by namespace 
 | 
HTableDescriptor[] | 
listTables()
List all the userspace tables. 
 | 
HTableDescriptor[] | 
listTables(Pattern pattern)
List all the userspace tables matching the given pattern. 
 | 
HTableDescriptor[] | 
listTables(String regex)
List all the userspace tables matching the given regular expression. 
 | 
void | 
majorCompact(byte[] tableNameOrRegionName)
Major compact a table or an individual region. 
 | 
void | 
majorCompact(byte[] tableNameOrRegionName,
            byte[] columnFamily)
Major compact a column family within a table or region. 
 | 
void | 
majorCompact(String tableNameOrRegionName)
Major compact a table or an individual region. 
 | 
void | 
majorCompact(String tableNameOrRegionName,
            String columnFamily)
Major compact a column family within a table or region. 
 | 
void | 
mergeRegions(byte[] encodedNameOfRegionA,
            byte[] encodedNameOfRegionB,
            boolean forcible)
Merge two regions. 
 | 
void | 
modifyColumn(byte[] tableName,
            HColumnDescriptor descriptor)
Modify an existing column family on a table. 
 | 
void | 
modifyColumn(String tableName,
            HColumnDescriptor descriptor)
Modify an existing column family on a table. 
 | 
void | 
modifyColumn(TableName tableName,
            HColumnDescriptor descriptor)
Modify an existing column family on a table. 
 | 
void | 
modifyNamespace(NamespaceDescriptor descriptor)
Modify an existing namespace 
 | 
void | 
modifyTable(byte[] tableName,
           HTableDescriptor htd)  | 
void | 
modifyTable(String tableName,
           HTableDescriptor htd)  | 
void | 
modifyTable(TableName tableName,
           HTableDescriptor htd)
Modify an existing table, more IRB friendly version. 
 | 
void | 
move(byte[] encodedRegionName,
    byte[] destServerName)
Move the region  
r to dest. | 
void | 
offline(byte[] regionName)
Offline specified region from master's in-memory state. 
 | 
void | 
restoreSnapshot(byte[] snapshotName)
Restore the specified snapshot on the original table. 
 | 
void | 
restoreSnapshot(byte[] snapshotName,
               boolean takeFailSafeSnapshot)
Restore the specified snapshot on the original table. 
 | 
void | 
restoreSnapshot(String snapshotName)
Restore the specified snapshot on the original table. 
 | 
void | 
restoreSnapshot(String snapshotName,
               boolean takeFailSafeSnapshot)
Restore the specified snapshot on the original table. 
 | 
byte[][] | 
rollHLogWriter(String serverName)
Roll the log writer. 
 | 
int | 
runCatalogScan()
Ask for a scan of the catalog table 
 | 
boolean | 
setBalancerRunning(boolean on,
                  boolean synchronous)
Turn the load balancer on or off. 
 | 
void | 
shutdown()
Shuts down the HBase cluster 
 | 
void | 
snapshot(byte[] snapshotName,
        byte[] tableName)  | 
void | 
snapshot(byte[] snapshotName,
        byte[] tableName,
        HBaseProtos.SnapshotDescription.Type flushType)
Create snapshot for the given table of given flush type. 
 | 
void | 
snapshot(byte[] snapshotName,
        TableName tableName)
public void snapshot(final String snapshotName,
 Create a timestamp consistent snapshot for the given table. 
 | 
void | 
snapshot(HBaseProtos.SnapshotDescription snapshot)
Take a snapshot and wait for the server to complete that snapshot (blocking). 
 | 
void | 
snapshot(String snapshotName,
        byte[] tableName,
        HBaseProtos.SnapshotDescription.Type type)  | 
void | 
snapshot(String snapshotName,
        String tableName)  | 
void | 
snapshot(String snapshotName,
        String tableName,
        HBaseProtos.SnapshotDescription.Type type)  | 
void | 
snapshot(String snapshotName,
        TableName tableName)
Take a snapshot for the given table. 
 | 
void | 
snapshot(String snapshotName,
        TableName tableName,
        HBaseProtos.SnapshotDescription.Type type)
Create typed snapshot of the table. 
 | 
void | 
split(byte[] tableNameOrRegionName)
Split a table or an individual region. 
 | 
void | 
split(byte[] tableNameOrRegionName,
     byte[] splitPoint)
Split a table or an individual region. 
 | 
void | 
split(String tableNameOrRegionName)
Split a table or an individual region. 
 | 
void | 
split(String tableNameOrRegionName,
     String splitPoint)  | 
void | 
stopMaster()
Shuts down the current HBase master only. 
 | 
void | 
stopRegionServer(String hostnamePort)
Stop the designated regionserver 
 | 
boolean | 
tableExists(byte[] tableName)  | 
boolean | 
tableExists(String tableName)  | 
boolean | 
tableExists(TableName tableName)  | 
MasterProtos.SnapshotResponse | 
takeSnapshotAsync(HBaseProtos.SnapshotDescription snapshot)
Take a snapshot without waiting for the server to complete that snapshot (asynchronous) 
 | 
void | 
unassign(byte[] regionName,
        boolean force)
Unassign a region from current hosting regionserver. 
 | 
public HBaseAdmin(org.apache.hadoop.conf.Configuration c)
           throws MasterNotRunningException,
                  ZooKeeperConnectionException,
                  IOException
HBaseAdmin(HConnection connection)c - Configuration object. Copied internally.MasterNotRunningExceptionZooKeeperConnectionExceptionIOExceptionpublic HBaseAdmin(HConnection connection) throws MasterNotRunningException, ZooKeeperConnectionException
connection - The HConnection instance to useMasterNotRunningException, - ZooKeeperConnectionException are not
  thrown anymore but kept into the interface for backward api compatibilityMasterNotRunningExceptionZooKeeperConnectionExceptionpublic void abort(String why, Throwable e)
Abortablepublic boolean isAborted()
Abortablepublic HConnection getConnection()
public boolean isMasterRunning()
                        throws MasterNotRunningException,
                               ZooKeeperConnectionException
ZooKeeperConnectionExceptionMasterNotRunningExceptionpublic boolean tableExists(TableName tableName) throws IOException
tableName - Table to check.IOExceptionpublic boolean tableExists(byte[] tableName)
                    throws IOException
IOExceptionpublic boolean tableExists(String tableName) throws IOException
IOExceptionpublic HTableDescriptor[] listTables() throws IOException
IOException - if a remote or network exception occurspublic HTableDescriptor[] listTables(Pattern pattern) throws IOException
pattern - The compiled regular expression to match againstIOException - if a remote or network exception occurslistTables()public HTableDescriptor[] listTables(String regex) throws IOException
regex - The regular expression to match againstIOException - if a remote or network exception occurslistTables(java.util.regex.Pattern)@Deprecated public String[] getTableNames() throws IOException
IOException - if a remote or network exception occurs@Deprecated public String[] getTableNames(Pattern pattern) throws IOException
pattern - The regular expression to match againstIOException - if a remote or network exception occurs@Deprecated public String[] getTableNames(String regex) throws IOException
regex - The regular expression to match againstIOException - if a remote or network exception occurspublic TableName[] listTableNames() throws IOException
IOException - if a remote or network exception occurspublic HTableDescriptor getTableDescriptor(TableName tableName) throws TableNotFoundException, IOException
tableName - as a byte []TableNotFoundExceptionIOException - if a remote or network exception occurspublic HTableDescriptor getTableDescriptor(byte[] tableName) throws TableNotFoundException, IOException
TableNotFoundExceptionIOExceptionpublic void createTable(HTableDescriptor desc) throws IOException
desc - table descriptor for tableIllegalArgumentException - if the table name is reservedMasterNotRunningException - if master is not runningTableExistsException - if table already exists (If concurrent
 threads, the table may have been created between test-for-existence
 and attempt-at-creation).IOException - if a remote or network exception occurspublic void createTable(HTableDescriptor desc, byte[] startKey, byte[] endKey, int numRegions) throws IOException
desc - table descriptor for tablestartKey - beginning of key rangeendKey - end of key rangenumRegions - the total number of regions to createIllegalArgumentException - if the table name is reservedMasterNotRunningException - if master is not runningTableExistsException - if table already exists (If concurrent
 threads, the table may have been created between test-for-existence
 and attempt-at-creation).IOExceptionpublic void createTable(HTableDescriptor desc, byte[][] splitKeys) throws IOException
desc - table descriptor for tablesplitKeys - array of split keys for the initial regions of the tableIllegalArgumentException - if the table name is reserved, if the split keys
 are repeated and if the split key has empty byte array.MasterNotRunningException - if master is not runningTableExistsException - if table already exists (If concurrent
 threads, the table may have been created between test-for-existence
 and attempt-at-creation).IOExceptionpublic void createTableAsync(HTableDescriptor desc, byte[][] splitKeys) throws IOException
isTableAvailable(org.apache.hadoop.hbase.TableName) -- it is not safe to create an HTable
 instance to this table before it is available.
 Note : Avoid passing empty split key.desc - table descriptor for tableIllegalArgumentException - Bad table name, if the split keys
 are repeated and if the split key has empty byte array.MasterNotRunningException - if master is not runningTableExistsException - if table already exists (If concurrent
 threads, the table may have been created between test-for-existence
 and attempt-at-creation).IOExceptionpublic void deleteTable(String tableName) throws IOException
IOExceptionpublic void deleteTable(byte[] tableName)
                 throws IOException
IOExceptionpublic void deleteTable(TableName tableName) throws IOException
tableName - name of table to deleteIOException - if a remote or network exception occurspublic HTableDescriptor[] deleteTables(String regex) throws IOException
listTables(java.lang.String) and
 deleteTable(byte[])regex - The regular expression to match table names againstIOExceptiondeleteTables(java.util.regex.Pattern), 
deleteTable(java.lang.String)public HTableDescriptor[] deleteTables(Pattern pattern) throws IOException
listTables(java.util.regex.Pattern) and
 deleteTable(byte[])pattern - The pattern to match table names againstIOExceptionpublic void enableTable(TableName tableName) throws IOException
enableTableAsync(byte[])
 and isTableEnabled(byte[]) instead.
 The table has to be in disabled state for it to be enabled.tableName - name of the tableIOException - 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.isTableEnabled(byte[]), 
disableTable(byte[]), 
enableTableAsync(byte[])public void enableTable(byte[] tableName)
                 throws IOException
IOExceptionpublic void enableTable(String tableName) throws IOException
IOExceptionpublic void enableTableAsync(TableName tableName) throws IOException
isTableEnabled(byte[]) to learn when table is fully online.  If
 table is taking too long to online, check server logs.tableName - IOExceptionpublic void enableTableAsync(byte[] tableName)
                      throws IOException
IOExceptionpublic void enableTableAsync(String tableName) throws IOException
IOExceptionpublic HTableDescriptor[] enableTables(String regex) throws IOException
listTables(java.lang.String) and
 enableTable(byte[])regex - The regular expression to match table names againstIOExceptionenableTables(java.util.regex.Pattern), 
enableTable(java.lang.String)public HTableDescriptor[] enableTables(Pattern pattern) throws IOException
listTables(java.util.regex.Pattern) and
 enableTable(byte[])pattern - The pattern to match table names againstIOExceptionpublic void disableTableAsync(TableName tableName) throws IOException
isTableDisabled(byte[]) to check for when disable completes.
 If table is taking too long to online, check server logs.tableName - name of tableIOException - if a remote or network exception occursisTableDisabled(byte[]), 
isTableEnabled(byte[])public void disableTableAsync(byte[] tableName)
                       throws IOException
IOExceptionpublic void disableTableAsync(String tableName) throws IOException
IOExceptionpublic void disableTable(TableName tableName) throws IOException
disableTableAsync(byte[]) and isTableDisabled(String)
 instead.
 The table has to be in enabled state for it to be disabled.tableName - IOException - There could be couple types of IOException
 TableNotFoundException means the table doesn't exist.
 TableNotEnabledException means the table isn't in enabled state.public void disableTable(byte[] tableName)
                  throws IOException
IOExceptionpublic void disableTable(String tableName) throws IOException
IOExceptionpublic HTableDescriptor[] disableTables(String regex) throws IOException
listTables(java.lang.String) and
 disableTable(byte[])regex - The regular expression to match table names againstIOExceptiondisableTables(java.util.regex.Pattern), 
disableTable(java.lang.String)public HTableDescriptor[] disableTables(Pattern pattern) throws IOException
listTables(java.util.regex.Pattern) and
 disableTable(byte[])pattern - The pattern to match table names againstIOExceptionpublic boolean isTableEnabled(TableName tableName) throws IOException
tableName - name of table to checkIOException - if a remote or network exception occurspublic boolean isTableEnabled(byte[] tableName)
                       throws IOException
IOExceptionpublic boolean isTableEnabled(String tableName) throws IOException
IOExceptionpublic boolean isTableDisabled(TableName tableName) throws IOException
tableName - name of table to checkIOException - if a remote or network exception occurspublic boolean isTableDisabled(byte[] tableName)
                        throws IOException
IOExceptionpublic boolean isTableDisabled(String tableName) throws IOException
IOExceptionpublic boolean isTableAvailable(TableName tableName) throws IOException
tableName - name of table to checkIOException - if a remote or network exception occurspublic boolean isTableAvailable(byte[] tableName)
                         throws IOException
IOExceptionpublic boolean isTableAvailable(String tableName) throws IOException
IOExceptionpublic boolean isTableAvailable(TableName tableName, byte[][] splitKeys) throws IOException
tableName - name of table to checksplitKeys - keys to check if the table has been created with all split keysIOException - if a remote or network excpetion occurspublic boolean isTableAvailable(byte[] tableName,
                       byte[][] splitKeys)
                         throws IOException
IOExceptionpublic boolean isTableAvailable(String tableName, byte[][] splitKeys) throws IOException
IOExceptionpublic Pair<Integer,Integer> getAlterStatus(TableName tableName) throws IOException
tableName - TableName instanceIOException - if a remote or network exception occurspublic Pair<Integer,Integer> getAlterStatus(byte[] tableName) throws IOException
tableName - name of the table to get the status ofIOException - if a remote or network exception occurspublic void addColumn(byte[] tableName,
             HColumnDescriptor column)
               throws IOException
tableName - name of the table to add column tocolumn - column descriptor of column to be addedIOException - if a remote or network exception occurspublic void addColumn(String tableName, HColumnDescriptor column) throws IOException
tableName - name of the table to add column tocolumn - column descriptor of column to be addedIOException - if a remote or network exception occurspublic void addColumn(TableName tableName, HColumnDescriptor column) throws IOException
tableName - name of the table to add column tocolumn - column descriptor of column to be addedIOException - if a remote or network exception occurspublic void deleteColumn(byte[] tableName,
                String columnName)
                  throws IOException
tableName - name of tablecolumnName - name of column to be deletedIOException - if a remote or network exception occurspublic void deleteColumn(String tableName, String columnName) throws IOException
tableName - name of tablecolumnName - name of column to be deletedIOException - if a remote or network exception occurspublic void deleteColumn(TableName tableName, byte[] columnName) throws IOException
tableName - name of tablecolumnName - name of column to be deletedIOException - if a remote or network exception occurspublic void modifyColumn(String tableName, HColumnDescriptor descriptor) throws IOException
tableName - name of tabledescriptor - new column descriptor to useIOException - if a remote or network exception occurspublic void modifyColumn(byte[] tableName,
                HColumnDescriptor descriptor)
                  throws IOException
tableName - name of tabledescriptor - new column descriptor to useIOException - if a remote or network exception occurspublic void modifyColumn(TableName tableName, HColumnDescriptor descriptor) throws IOException
tableName - name of tabledescriptor - new column descriptor to useIOException - if a remote or network exception occurspublic void closeRegion(String regionname, String serverName) throws IOException
regionname - region name to closeserverName - If supplied, we'll use this location rather than
 the one currently in hbase:metaIOException - if a remote or network exception occurspublic void closeRegion(byte[] regionname,
               String serverName)
                 throws IOException
regionname - region name to closeserverName - 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:
  host187.example.com,60020,1289493121758IOException - if a remote or network exception occurspublic boolean closeRegionWithEncodedRegionName(String encodedRegionName, String serverName) throws IOException
encodedRegionName - The encoded region name; i.e. the hash that makes up the region
          name suffix: e.g. if regionname is
          TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.
          , then the encoded region name is:
          527db22f95c8a9e0116f0cc13c680396.serverName - The servername of the regionserver. A server name is made of host,
          port and startcode. This is mandatory. Here is an example:
           host187.example.com,60020,1289493121758IOException - if a remote or network exception occurspublic void closeRegion(ServerName sn, HRegionInfo hri) throws IOException
sn - hri - IOExceptionpublic List<HRegionInfo> getOnlineRegions(ServerName sn) throws IOException
IOExceptionpublic void flush(String tableNameOrRegionName) throws IOException, InterruptedException
tableNameOrRegionName - table or region to flushIOException - if a remote or network exception occursInterruptedExceptionpublic void flush(byte[] tableNameOrRegionName)
           throws IOException,
                  InterruptedException
tableNameOrRegionName - table or region to flushIOException - if a remote or network exception occursInterruptedExceptionpublic void compact(String tableNameOrRegionName) throws IOException, InterruptedException
tableNameOrRegionName - table or region to compactIOException - if a remote or network exception occursInterruptedExceptionpublic void compact(byte[] tableNameOrRegionName)
             throws IOException,
                    InterruptedException
tableNameOrRegionName - table or region to compactIOException - if a remote or network exception occursInterruptedExceptionpublic void compact(String tableOrRegionName, String columnFamily) throws IOException, InterruptedException
tableOrRegionName - table or region to compactcolumnFamily - column family within a table or regionIOException - if a remote or network exception occursInterruptedExceptionpublic void compact(byte[] tableNameOrRegionName,
           byte[] columnFamily)
             throws IOException,
                    InterruptedException
tableNameOrRegionName - table or region to compactcolumnFamily - column family within a table or regionIOException - if a remote or network exception occursInterruptedExceptionpublic void majorCompact(String tableNameOrRegionName) throws IOException, InterruptedException
tableNameOrRegionName - table or region to major compactIOException - if a remote or network exception occursInterruptedExceptionpublic void majorCompact(byte[] tableNameOrRegionName)
                  throws IOException,
                         InterruptedException
tableNameOrRegionName - table or region to major compactIOException - if a remote or network exception occursInterruptedExceptionpublic void majorCompact(String tableNameOrRegionName, String columnFamily) throws IOException, InterruptedException
tableNameOrRegionName - table or region to major compactcolumnFamily - column family within a table or regionIOException - if a remote or network exception occursInterruptedExceptionpublic void majorCompact(byte[] tableNameOrRegionName,
                byte[] columnFamily)
                  throws IOException,
                         InterruptedException
tableNameOrRegionName - table or region to major compactcolumnFamily - column family within a table or regionIOException - if a remote or network exception occursInterruptedExceptionpublic void move(byte[] encodedRegionName,
        byte[] destServerName)
          throws HBaseIOException,
                 MasterNotRunningException,
                 ZooKeeperConnectionException
r to dest.encodedRegionName - The encoded region name; i.e. the hash that makes
 up the region name suffix: e.g. if regionname is
 TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.,
 then the encoded region name is: 527db22f95c8a9e0116f0cc13c680396.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:
  host187.example.com,60020,1289493121758UnknownRegionException - Thrown if we can't find a region named
 encodedRegionNameZooKeeperConnectionExceptionMasterNotRunningExceptionHBaseIOExceptionpublic void assign(byte[] regionName)
            throws MasterNotRunningException,
                   ZooKeeperConnectionException,
                   IOException
regionName - Region name to assign.MasterNotRunningExceptionZooKeeperConnectionExceptionIOExceptionpublic void unassign(byte[] regionName,
            boolean force)
              throws MasterNotRunningException,
                     ZooKeeperConnectionException,
                     IOException
move(byte[], byte[]) if you want
 to control the region movement.regionName - Region to unassign. Will clear any existing RegionPlan
 if one found.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).MasterNotRunningExceptionZooKeeperConnectionExceptionIOExceptionpublic void offline(byte[] regionName)
             throws IOException
regionName - Region to offline.IOExceptionpublic boolean setBalancerRunning(boolean on,
                         boolean synchronous)
                           throws MasterNotRunningException,
                                  ZooKeeperConnectionException
on - If true, enable balancer. If false, disable balancer.synchronous - If true, it waits until current balance() call, if outstanding, to return.MasterNotRunningExceptionZooKeeperConnectionExceptionpublic boolean balancer()
                 throws MasterNotRunningException,
                        ZooKeeperConnectionException,
                        com.google.protobuf.ServiceException
MasterNotRunningExceptionZooKeeperConnectionExceptioncom.google.protobuf.ServiceExceptionpublic boolean enableCatalogJanitor(boolean enable)
                             throws com.google.protobuf.ServiceException,
                                    MasterNotRunningException
enable - if true enables the catalog janitorcom.google.protobuf.ServiceExceptionMasterNotRunningExceptionpublic int runCatalogScan()
                   throws com.google.protobuf.ServiceException,
                          MasterNotRunningException
com.google.protobuf.ServiceExceptionMasterNotRunningExceptionpublic boolean isCatalogJanitorEnabled()
                                throws com.google.protobuf.ServiceException,
                                       MasterNotRunningException
com.google.protobuf.ServiceExceptionMasterNotRunningExceptionpublic void mergeRegions(byte[] encodedNameOfRegionA,
                byte[] encodedNameOfRegionB,
                boolean forcible)
                  throws IOException
encodedNameOfRegionA - encoded name of region aencodedNameOfRegionB - encoded name of region bforcible - true if do a compulsory merge, otherwise we will only merge
          two adjacent regionsIOExceptionpublic void split(String tableNameOrRegionName) throws IOException, InterruptedException
tableNameOrRegionName - table or region to splitIOException - if a remote or network exception occursInterruptedExceptionpublic void split(byte[] tableNameOrRegionName)
           throws IOException,
                  InterruptedException
tableNameOrRegionName - table to region to splitIOException - if a remote or network exception occursInterruptedExceptionpublic void split(String tableNameOrRegionName, String splitPoint) throws IOException, InterruptedException
IOExceptionInterruptedExceptionpublic void split(byte[] tableNameOrRegionName,
         byte[] splitPoint)
           throws IOException,
                  InterruptedException
tableNameOrRegionName - table to region to splitsplitPoint - the explicit position to split onIOException - if a remote or network exception occursInterruptedException - interrupt exception occurredpublic void modifyTable(TableName tableName, HTableDescriptor htd) throws IOException
tableName - name of table.htd - modified description of the tableIOException - if a remote or network exception occurspublic void modifyTable(byte[] tableName,
               HTableDescriptor htd)
                 throws IOException
IOExceptionpublic void modifyTable(String tableName, HTableDescriptor htd) throws IOException
IOExceptionpublic void shutdown()
              throws IOException
IOException - if a remote or network exception occurspublic void stopMaster()
                throws IOException
IOException - if a remote or network exception occursshutdown()public void stopRegionServer(String hostnamePort) throws IOException
hostnamePort - Hostname and port delimited by a : as in
 example.org:1234IOException - if a remote or network exception occurspublic ClusterStatus getClusterStatus() throws IOException
IOException - if a remote or network exception occurspublic org.apache.hadoop.conf.Configuration getConfiguration()
public void createNamespace(NamespaceDescriptor descriptor) throws IOException
descriptor - descriptor which describes the new namespaceIOExceptionpublic void modifyNamespace(NamespaceDescriptor descriptor) throws IOException
descriptor - descriptor which describes the new namespaceIOExceptionpublic void deleteNamespace(String name) throws IOException
name - namespace nameIOExceptionpublic NamespaceDescriptor getNamespaceDescriptor(String name) throws IOException
name - name of namespace descriptorIOExceptionpublic NamespaceDescriptor[] listNamespaceDescriptors() throws IOException
IOExceptionpublic HTableDescriptor[] listTableDescriptorsByNamespace(String name) throws IOException
name - namespace nameIOExceptionpublic TableName[] listTableNamesByNamespace(String name) throws IOException
name - namespace nameIOExceptionpublic static void checkHBaseAvailable(org.apache.hadoop.conf.Configuration conf)
                                throws MasterNotRunningException,
                                       ZooKeeperConnectionException,
                                       com.google.protobuf.ServiceException,
                                       IOException
conf - system configurationMasterNotRunningException - if the master is not runningZooKeeperConnectionException - if unable to connect to zookeepercom.google.protobuf.ServiceExceptionIOExceptionpublic List<HRegionInfo> getTableRegions(TableName tableName) throws IOException
tableName - the name of the tableHRegionInfo.IOExceptionpublic List<HRegionInfo> getTableRegions(byte[] tableName) throws IOException
IOExceptionpublic void close()
           throws IOException
close in interface Closeableclose in interface AutoCloseableIOExceptionpublic HTableDescriptor[] getTableDescriptorsByTableName(List<TableName> tableNames) throws IOException
tableNames - List of table namesIOException - if a remote or network exception occurspublic HTableDescriptor[] getTableDescriptors(List<String> names) throws IOException
names - List of table namesIOException - if a remote or network exception occurspublic byte[][] rollHLogWriter(String serverName) throws IOException, FailedLogCloseException
serverName - The servername of the regionserver. A server name is made of host,
          port and startcode. This is mandatory. Here is an example:
           host187.example.com,60020,1289493121758HRegionInfo.getEncodedName()IOException - if a remote or network exception occursFailedLogCloseExceptionpublic String[] getMasterCoprocessors()
public AdminProtos.GetRegionInfoResponse.CompactionState getCompactionState(String tableNameOrRegionName) throws IOException, InterruptedException
tableNameOrRegionName - table or region to major compactIOException - if a remote or network exception occursInterruptedExceptionpublic AdminProtos.GetRegionInfoResponse.CompactionState getCompactionState(byte[] tableNameOrRegionName) throws IOException, InterruptedException
tableNameOrRegionName - table or region to major compactIOException - if a remote or network exception occursInterruptedExceptionpublic void snapshot(String snapshotName, TableName tableName) throws IOException, SnapshotCreationException, IllegalArgumentException
 Snapshots are considered unique based on the name of the snapshot. Attempts to take a
 snapshot with the same name (even a different type or with different parameters) will fail with
 a SnapshotCreationException indicating the duplicate naming.
 
 Snapshot names follow the same naming constraints as tables in HBase. See
 TableName.isLegalFullyQualifiedTableName(byte[]).
snapshotName - name of the snapshot to be createdtableName - name of the table for which snapshot is createdIOException - if a remote or network exception occursSnapshotCreationException - if snapshot creation failedIllegalArgumentException - if the snapshot request is formatted incorrectlypublic void snapshot(String snapshotName, String tableName) throws IOException, SnapshotCreationException, IllegalArgumentException
public void snapshot(byte[] snapshotName,
            byte[] tableName,
            HBaseProtos.SnapshotDescription.Type flushType)
              throws IOException,
                     SnapshotCreationException,
                     IllegalArgumentException
 Snapshots are considered unique based on the name of the snapshot. Attempts to take a
 snapshot with the same name (even a different type or with different parameters) will fail with
 a SnapshotCreationException indicating the duplicate naming.
 
Snapshot names follow the same naming constraints as tables in HBase.
snapshotName - name of the snapshot to be createdtableName - name of the table for which snapshot is createdflushType - if the snapshot should be taken without flush memstore firstIOException - if a remote or network exception occursSnapshotCreationException - if snapshot creation failedIllegalArgumentException - if the snapshot request is formatted incorrectlypublic void snapshot(byte[] snapshotName,
            TableName tableName)
              throws IOException,
                     SnapshotCreationException,
                     IllegalArgumentException
 Snapshots are considered unique based on the name of the snapshot. Attempts to take a
 snapshot with the same name (even a different type or with different parameters) will fail with
 a SnapshotCreationException indicating the duplicate naming.
 
Snapshot names follow the same naming constraints as tables in HBase.
snapshotName - name of the snapshot to be createdtableName - name of the table for which snapshot is createdIOException - if a remote or network exception occursSnapshotCreationException - if snapshot creation failedIllegalArgumentException - if the snapshot request is formatted incorrectlypublic void snapshot(byte[] snapshotName,
            byte[] tableName)
              throws IOException,
                     SnapshotCreationException,
                     IllegalArgumentException
public void snapshot(String snapshotName, TableName tableName, HBaseProtos.SnapshotDescription.Type type) throws IOException, SnapshotCreationException, IllegalArgumentException
 Snapshots are considered unique based on the name of the snapshot. Attempts to take a
 snapshot with the same name (even a different type or with different parameters) will fail with
 a SnapshotCreationException indicating the duplicate naming.
 
 Snapshot names follow the same naming constraints as tables in HBase. See
 TableName.isLegalFullyQualifiedTableName(byte[]).
 
snapshotName - name to give the snapshot on the filesystem. Must be unique from all other
          snapshots stored on the clustertableName - name of the table to snapshottype - type of snapshot to takeIOException - we fail to reach the masterSnapshotCreationException - if snapshot creation failedIllegalArgumentException - if the snapshot request is formatted incorrectlypublic void snapshot(String snapshotName, String tableName, HBaseProtos.SnapshotDescription.Type type) throws IOException, SnapshotCreationException, IllegalArgumentException
public void snapshot(String snapshotName, byte[] tableName, HBaseProtos.SnapshotDescription.Type type) throws IOException, SnapshotCreationException, IllegalArgumentException
public void snapshot(HBaseProtos.SnapshotDescription snapshot) throws IOException, SnapshotCreationException, IllegalArgumentException
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).
 Snapshots are considered unique based on the name of the snapshot. Attempts to take a
 snapshot with the same name (even a different type or with different parameters) will fail with
 a SnapshotCreationException indicating the duplicate naming.
 
 Snapshot names follow the same naming constraints as tables in HBase. See
 TableName.isLegalFullyQualifiedTableName(byte[]).
 
 You should probably use snapshot(String, String) or snapshot(byte[], byte[])
 unless you are sure about the type of snapshot that you want to take.
snapshot - snapshot to takeIOException - or we lose contact with the master.SnapshotCreationException - if snapshot failed to be takenIllegalArgumentException - if the snapshot request is formatted incorrectlypublic MasterProtos.SnapshotResponse takeSnapshotAsync(HBaseProtos.SnapshotDescription snapshot) throws IOException, SnapshotCreationException
Only a single snapshot should be taken at a time, or results may be undefined.
snapshot - snapshot to takeIOException - if the snapshot did not succeed or we lose contact with the master.SnapshotCreationException - if snapshot creation failedIllegalArgumentException - if the snapshot request is formatted incorrectlypublic boolean isSnapshotFinished(HBaseProtos.SnapshotDescription snapshot) throws IOException, HBaseSnapshotException, UnknownSnapshotException
There are three possible states:
 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
 UnknownSnapshotException.
snapshot - description of the snapshot to checkIOException - if we have a network issueHBaseSnapshotException - if the snapshot failedUnknownSnapshotException - if the requested snapshot is unknownpublic void restoreSnapshot(byte[] snapshotName)
                     throws IOException,
                            RestoreSnapshotException
snapshotName - name of the snapshot to restoreIOException - if a remote or network exception occursRestoreSnapshotException - if snapshot failed to be restoredIllegalArgumentException - if the restore request is formatted incorrectlypublic void restoreSnapshot(String snapshotName) throws IOException, RestoreSnapshotException
snapshotName - name of the snapshot to restoreIOException - if a remote or network exception occursRestoreSnapshotException - if snapshot failed to be restoredIllegalArgumentException - if the restore request is formatted incorrectlypublic void restoreSnapshot(byte[] snapshotName,
                   boolean takeFailSafeSnapshot)
                     throws IOException,
                            RestoreSnapshotException
snapshotName - name of the snapshot to restoretakeFailSafeSnapshot - true if the failsafe snapshot should be takenIOException - if a remote or network exception occursRestoreSnapshotException - if snapshot failed to be restoredIllegalArgumentException - if the restore request is formatted incorrectlypublic void restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot) throws IOException, RestoreSnapshotException
snapshotName - name of the snapshot to restoretakeFailSafeSnapshot - true if the failsafe snapshot should be takenIOException - if a remote or network exception occursRestoreSnapshotException - if snapshot failed to be restoredIllegalArgumentException - if the restore request is formatted incorrectlypublic void cloneSnapshot(byte[] snapshotName,
                 byte[] tableName)
                   throws IOException,
                          TableExistsException,
                          RestoreSnapshotException,
                          InterruptedException
snapshotName - name of the snapshot to be clonedtableName - name of the table where the snapshot will be restoredIOException - if a remote or network exception occursTableExistsException - if table to be created already existsRestoreSnapshotException - if snapshot failed to be clonedIllegalArgumentException - if the specified table has not a valid nameInterruptedExceptionpublic void cloneSnapshot(byte[] snapshotName,
                 TableName tableName)
                   throws IOException,
                          TableExistsException,
                          RestoreSnapshotException,
                          InterruptedException
snapshotName - name of the snapshot to be clonedtableName - name of the table where the snapshot will be restoredIOException - if a remote or network exception occursTableExistsException - if table to be created already existsRestoreSnapshotException - if snapshot failed to be clonedIllegalArgumentException - if the specified table has not a valid nameInterruptedExceptionpublic void cloneSnapshot(String snapshotName, String tableName) throws IOException, TableExistsException, RestoreSnapshotException, InterruptedException
snapshotName - name of the snapshot to be clonedtableName - name of the table where the snapshot will be restoredIOException - if a remote or network exception occursTableExistsException - if table to be created already existsRestoreSnapshotException - if snapshot failed to be clonedIllegalArgumentException - if the specified table has not a valid nameInterruptedExceptionpublic void cloneSnapshot(String snapshotName, TableName tableName) throws IOException, TableExistsException, RestoreSnapshotException, InterruptedException
snapshotName - name of the snapshot to be clonedtableName - name of the table where the snapshot will be restoredIOException - if a remote or network exception occursTableExistsException - if table to be created already existsRestoreSnapshotException - if snapshot failed to be clonedIllegalArgumentException - if the specified table has not a valid nameInterruptedExceptionpublic void execProcedure(String signature, String instance, Map<String,String> props) throws IOException
signature - A distributed procedure is uniquely identified
 by its signature (default the root ZK node name of the procedure).instance - The instance name of the procedure. For some procedures, this parameter is
 optional.props - Property/Value pairs of properties passing to the procedureIOExceptionpublic boolean isProcedureFinished(String signature, String instance, Map<String,String> props) throws IOException
There are three possible states:
signature - The signature that uniquely identifies a procedureinstance - The instance name of the procedureprops - Property/Value pairs of properties passing to the procedureIOException - if the specified procedure finished with errorpublic List<HBaseProtos.SnapshotDescription> listSnapshots() throws IOException
IOException - if a network error occurspublic List<HBaseProtos.SnapshotDescription> listSnapshots(String regex) throws IOException
regex - The regular expression to match againstIOException - if a remote or network exception occurspublic List<HBaseProtos.SnapshotDescription> listSnapshots(Pattern pattern) throws IOException
pattern - The compiled regular expression to match againstIOException - if a remote or network exception occurspublic void deleteSnapshot(byte[] snapshotName)
                    throws IOException
snapshotName - name of the snapshotIOException - if a remote or network exception occurspublic void deleteSnapshot(String snapshotName) throws IOException
snapshotName - name of the snapshotIOException - if a remote or network exception occurspublic void deleteSnapshots(String regex) throws IOException
regex - The regular expression to match againstIOException - if a remote or network exception occurspublic void deleteSnapshots(Pattern pattern) throws IOException
pattern - pattern for names of the snapshot to matchIOException - if a remote or network exception occurspublic CoprocessorRpcChannel coprocessorService()
RpcChannel instance
 connected to the active master.
 
 The obtained RpcChannel instance can be used to access a published
 coprocessor Service using standard protobuf service invocations:
 
 CoprocessorRpcChannel channel = myAdmin.coprocessorService();
 MyService.BlockingInterface service = MyService.newBlockingStub(channel);
 MyCallRequest request = MyCallRequest.newBuilder()
     ...
     .build();
 MyCallResponse response = service.myCall(null, request);
 Copyright © 2014 The Apache Software Foundation. All rights reserved.