Class ThriftAdmin

java.lang.Object
org.apache.hadoop.hbase.thrift2.client.ThriftAdmin
All Implemented Interfaces:
Closeable, AutoCloseable, Abortable, Admin

@Private public class ThriftAdmin extends Object implements Admin
  • Field Details

    • client

      private org.apache.hadoop.hbase.thrift2.generated.THBaseService.Client client
    • transport

      private org.apache.thrift.transport.TTransport transport
    • operationTimeout

      private int operationTimeout
    • syncWaitTimeout

      private int syncWaitTimeout
    • conf

      private org.apache.hadoop.conf.Configuration conf
  • Constructor Details

    • ThriftAdmin

      public ThriftAdmin(org.apache.hadoop.hbase.thrift2.generated.THBaseService.Client client, org.apache.thrift.transport.TTransport tTransport, org.apache.hadoop.conf.Configuration conf)
  • Method Details

    • getOperationTimeout

      public int getOperationTimeout()
      Description copied from interface: Admin
      Return the operation timeout for a rpc call.
      Specified by:
      getOperationTimeout in interface Admin
      See Also:
    • getSyncWaitTimeout

      public int getSyncWaitTimeout()
      Description copied from interface: Admin
      Return the blocking wait time for an asynchronous operation. Can be configured by hbase.client.sync.wait.timeout.msec.

      For several operations, such as createTable, deleteTable, etc, the rpc call will finish right after we schedule a procedure at master side, so the timeout will not be controlled by the above Admin.getOperationTimeout(). And timeout value here tells you how much time we will wait until the procedure at master side is finished.

      In general, you can consider that the implementation for XXXX method is just a XXXXAsync().get(getSyncWaitTimeout(), TimeUnit.MILLISECONDS).

      Specified by:
      getSyncWaitTimeout in interface Admin
      See Also:
    • abort

      public void abort(String why, Throwable e)
      Description copied from interface: Abortable
      Abort the server or client.
      Specified by:
      abort in interface Abortable
      Specified by:
      abort in interface Admin
      Parameters:
      why - Why we're aborting.
      e - Throwable that caused abort. Can be null.
    • isAborted

      public boolean isAborted()
      Description copied from interface: Abortable
      Check if the server or client was aborted.
      Specified by:
      isAborted in interface Abortable
      Specified by:
      isAborted in interface Admin
      Returns:
      true if the server or client was aborted, false otherwise
    • close

      public void close()
      Specified by:
      close in interface Admin
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • getConfiguration

      public org.apache.hadoop.conf.Configuration getConfiguration()
      Description copied from interface: Admin
      Returns Configuration used by the instance.
      Specified by:
      getConfiguration in interface Admin
    • tableExists

      public boolean tableExists(TableName tableName) throws IOException
      Description copied from interface: Admin
      Check if a table exists.
      Specified by:
      tableExists in interface Admin
      Parameters:
      tableName - Table to check.
      Returns:
      true if table exists already.
      Throws:
      IOException - if a remote or network exception occurs
    • getConnection

      Description copied from interface: Admin
      Returns Connection used by this object.
      Specified by:
      getConnection in interface Admin
    • listTableDescriptors

      Description copied from interface: Admin
      List all the userspace tables.
      Specified by:
      listTableDescriptors in interface Admin
      Returns:
      a list of TableDescriptors
      Throws:
      IOException - if a remote or network exception occurs
    • listTableDescriptors

      public List<TableDescriptor> listTableDescriptors(boolean includeSysTables) throws IOException
      Description copied from interface: Admin
      List all userspace tables and whether or not include system tables.
      Specified by:
      listTableDescriptors in interface Admin
      Returns:
      a list of TableDescriptors
      Throws:
      IOException - if a remote or network exception occurs
    • listTableDescriptors

      Description copied from interface: Admin
      List all the userspace tables that match the given pattern.
      Specified by:
      listTableDescriptors in interface Admin
      Parameters:
      pattern - The compiled regular expression to match against
      Returns:
      a list of TableDescriptors
      Throws:
      IOException - if a remote or network exception occurs
      See Also:
    • listTableDescriptors

      public List<TableDescriptor> listTableDescriptors(Pattern pattern, boolean includeSysTables) throws IOException
      Description copied from interface: Admin
      List all the tables matching the given pattern.
      Specified by:
      listTableDescriptors in interface Admin
      Parameters:
      pattern - The compiled regular expression to match against
      includeSysTables - false to match only against userspace tables
      Returns:
      a list of TableDescriptors
      Throws:
      IOException - if a remote or network exception occurs
      See Also:
    • listTableDescriptorsByState

      public List<TableDescriptor> listTableDescriptorsByState(boolean isEnabled) throws IOException
      Description copied from interface: Admin
      List all enabled or disabled tables
      Specified by:
      listTableDescriptorsByState in interface Admin
      Parameters:
      isEnabled - is true means return enabled tables, false means return disabled tables
      Returns:
      a list of enabled or disabled tables
      Throws:
      IOException
    • listTableNames

      Description copied from interface: Admin
      List all of the names of userspace tables.
      Specified by:
      listTableNames in interface Admin
      Returns:
      TableName[] table names
      Throws:
      IOException - if a remote or network exception occurs
    • listTableNames

      public TableName[] listTableNames(Pattern pattern) throws IOException
      Description copied from interface: Admin
      List all of the names of userspace tables.
      Specified by:
      listTableNames in interface Admin
      Parameters:
      pattern - The regular expression to match against
      Returns:
      array of table names
      Throws:
      IOException - if a remote or network exception occurs
    • listTableNames

      public TableName[] listTableNames(Pattern pattern, boolean includeSysTables) throws IOException
      Description copied from interface: Admin
      List all of the names of userspace tables.
      Specified by:
      listTableNames in interface Admin
      Parameters:
      pattern - The regular expression to match against
      includeSysTables - false to match only against userspace tables
      Returns:
      TableName[] table names
      Throws:
      IOException - if a remote or network exception occurs
    • listTableNamesByState

      public List<TableName> listTableNamesByState(boolean isEnabled) throws IOException
      Description copied from interface: Admin
      List all enabled or disabled table names
      Specified by:
      listTableNamesByState in interface Admin
      Parameters:
      isEnabled - is true means return enabled table names, false means return disabled table names
      Returns:
      a list of enabled or disabled table names
      Throws:
      IOException
    • getDescriptor

      Description copied from interface: Admin
      Get a table descriptor.
      Specified by:
      getDescriptor in interface Admin
      Parameters:
      tableName - as a TableName
      Returns:
      the tableDescriptor
      Throws:
      TableNotFoundException - if the table was not found
      IOException - if a remote or network exception occurs
    • listTableDescriptorsByNamespace

      Description copied from interface: Admin
      Get list of table descriptors by namespace.
      Specified by:
      listTableDescriptorsByNamespace in interface Admin
      Parameters:
      name - namespace name
      Returns:
      returns a list of TableDescriptors
      Throws:
      IOException - if a remote or network exception occurs
    • listTableNamesByNamespace

      Description copied from interface: Admin
      Get list of table names by namespace.
      Specified by:
      listTableNamesByNamespace in interface Admin
      Parameters:
      name - namespace name
      Returns:
      The list of table names in the namespace
      Throws:
      IOException - if a remote or network exception occurs
    • createTable

      public void createTable(TableDescriptor desc) throws IOException
      Description copied from interface: Admin
      Creates a new table. Synchronous operation.
      Specified by:
      createTable in interface Admin
      Parameters:
      desc - table descriptor for table
      Throws:
      MasterNotRunningException - if master is not running
      TableExistsException - 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 occurs
    • createTable

      public void createTable(TableDescriptor desc, byte[] startKey, byte[] endKey, int numRegions) throws IOException
      Description copied from interface: Admin
      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.
      Specified by:
      createTable in interface Admin
      Parameters:
      desc - table descriptor for table
      startKey - beginning of key range
      endKey - end of key range
      numRegions - the total number of regions to create
      Throws:
      IOException - if a remote or network exception occurs
      MasterNotRunningException - if master is not running
      TableExistsException - if table already exists (If concurrent threads, the table may have been created between test-for-existence and attempt-at-creation).
    • createTable

      public void createTable(TableDescriptor desc, byte[][] splitKeys) throws IOException
      Description copied from interface: Admin
      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.
      Specified by:
      createTable in interface Admin
      Parameters:
      desc - table descriptor for table
      splitKeys - array of split keys for the initial regions of the table
      Throws:
      MasterNotRunningException - if master is not running
      TableExistsException - 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 occurs
    • deleteTable

      public void deleteTable(TableName tableName) throws IOException
      Description copied from interface: Admin
      Deletes a table. Synchronous operation.
      Specified by:
      deleteTable in interface Admin
      Parameters:
      tableName - name of table to delete
      Throws:
      IOException - if a remote or network exception occurs
    • truncateTable

      public void truncateTable(TableName tableName, boolean preserveSplits) throws IOException
      Description copied from interface: Admin
      Truncate a table. Synchronous operation.
      Specified by:
      truncateTable in interface Admin
      Parameters:
      tableName - name of table to truncate
      preserveSplits - true if the splits should be preserved
      Throws:
      IOException - if a remote or network exception occurs
    • enableTable

      public void enableTable(TableName tableName) throws IOException
      Description copied from interface: Admin
      Enable a table. May timeout. Use Admin.enableTableAsync(org.apache.hadoop.hbase.TableName) and Admin.isTableEnabled(org.apache.hadoop.hbase.TableName) instead. The table has to be in disabled state for it to be enabled.
      Specified by:
      enableTable in interface Admin
      Parameters:
      tableName - name of the table
      Throws:
      IOException - There could be couple types of IOException TableNotFoundException means the table doesn't exist. TableNotDisabledException means the table isn't in disabled state.
      See Also:
    • disableTable

      public void disableTable(TableName tableName) throws IOException
      Description copied from interface: Admin
      Disable table and wait on completion. May timeout eventually. Use Admin.disableTableAsync(org.apache.hadoop.hbase.TableName) and Admin.isTableDisabled(org.apache.hadoop.hbase.TableName) instead. The table has to be in enabled state for it to be disabled.
      Specified by:
      disableTable in interface Admin
      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.
    • isTableEnabled

      public boolean isTableEnabled(TableName tableName) throws IOException
      Description copied from interface: Admin
      Check if a table is enabled.
      Specified by:
      isTableEnabled in interface Admin
      Parameters:
      tableName - name of table to check
      Returns:
      true if table is on-line
      Throws:
      IOException - if a remote or network exception occurs
    • isTableDisabled

      public boolean isTableDisabled(TableName tableName) throws IOException
      Description copied from interface: Admin
      Check if a table is disabled.
      Specified by:
      isTableDisabled in interface Admin
      Parameters:
      tableName - name of table to check
      Returns:
      true if table is off-line
      Throws:
      IOException - if a remote or network exception occurs
    • isTableAvailable

      public boolean isTableAvailable(TableName tableName) throws IOException
      Description copied from interface: Admin
      Check if a table is available.
      Specified by:
      isTableAvailable in interface Admin
      Parameters:
      tableName - name of table to check
      Returns:
      true if all regions of the table are available
      Throws:
      IOException - if a remote or network exception occurs
    • addColumnFamily

      public void addColumnFamily(TableName tableName, ColumnFamilyDescriptor columnFamily) throws IOException
      Description copied from interface: Admin
      Add a column family to an existing table. Synchronous operation. Use Admin.addColumnFamilyAsync(TableName, ColumnFamilyDescriptor) instead because it returns a Future from which you can learn whether success or failure.
      Specified by:
      addColumnFamily in interface Admin
      Parameters:
      tableName - name of the table to add column family to
      columnFamily - column family descriptor of column family to be added
      Throws:
      IOException - if a remote or network exception occurs
    • deleteColumnFamily

      public void deleteColumnFamily(TableName tableName, byte[] columnFamily) throws IOException
      Description copied from interface: Admin
      Delete a column family from a table. Synchronous operation. Use Admin.deleteColumnFamily(TableName, byte[]) instead because it returns a Future from which you can learn whether success or failure.
      Specified by:
      deleteColumnFamily in interface Admin
      Parameters:
      tableName - name of table
      columnFamily - name of column family to be deleted
      Throws:
      IOException - if a remote or network exception occurs
    • modifyColumnFamily

      public void modifyColumnFamily(TableName tableName, ColumnFamilyDescriptor columnFamily) throws IOException
      Description copied from interface: Admin
      Modify an existing column family on a table. Synchronous operation. Use Admin.modifyColumnFamilyAsync(TableName, ColumnFamilyDescriptor) instead because it returns a Future from which you can learn whether success or failure.
      Specified by:
      modifyColumnFamily in interface Admin
      Parameters:
      tableName - name of table
      columnFamily - new column family descriptor to use
      Throws:
      IOException - if a remote or network exception occurs
    • modifyTable

      public void modifyTable(TableDescriptor td) throws IOException
      Description copied from interface: Admin
      Modify an existing table, more IRB friendly version.
      Specified by:
      modifyTable in interface Admin
      Parameters:
      td - modified description of the table
      Throws:
      IOException - if a remote or network exception occurs
    • modifyNamespace

      public void modifyNamespace(NamespaceDescriptor descriptor) throws IOException
      Description copied from interface: Admin
      Modify an existing namespace. Blocks until namespace has been successfully modified or an exception is thrown.
      Specified by:
      modifyNamespace in interface Admin
      Parameters:
      descriptor - descriptor which describes the new namespace
      Throws:
      IOException - if a remote or network exception occurs
    • deleteNamespace

      public void deleteNamespace(String name) throws IOException
      Description copied from interface: Admin
      Delete an existing namespace. Only empty namespaces (no tables) can be removed. Blocks until namespace has been successfully deleted or an exception is thrown.
      Specified by:
      deleteNamespace in interface Admin
      Parameters:
      name - namespace name
      Throws:
      IOException - if a remote or network exception occurs
    • getNamespaceDescriptor

      Description copied from interface: Admin
      Get a namespace descriptor by name.
      Specified by:
      getNamespaceDescriptor in interface Admin
      Parameters:
      name - name of namespace descriptor
      Returns:
      A descriptor
      Throws:
      NamespaceNotFoundException - if the namespace was not found
      IOException - if a remote or network exception occurs
    • listNamespaces

      public String[] listNamespaces() throws IOException
      Description copied from interface: Admin
      List available namespaces
      Specified by:
      listNamespaces in interface Admin
      Returns:
      List of namespace names
      Throws:
      IOException - if a remote or network exception occurs
    • listNamespaceDescriptors

      Description copied from interface: Admin
      List available namespace descriptors
      Specified by:
      listNamespaceDescriptors in interface Admin
      Returns:
      List of descriptors
      Throws:
      IOException - if a remote or network exception occurs
    • createNamespace

      public void createNamespace(NamespaceDescriptor descriptor) throws IOException
      Description copied from interface: Admin
      Create a new namespace. Blocks until namespace has been successfully created or an exception is thrown.
      Specified by:
      createNamespace in interface Admin
      Parameters:
      descriptor - descriptor which describes the new namespace.
      Throws:
      IOException - if a remote or network exception occurs
    • switchRpcThrottle

      public boolean switchRpcThrottle(boolean enable) throws IOException
      Description copied from interface: Admin
      Switch the rpc throttle enable state.
      Specified by:
      switchRpcThrottle in interface Admin
      Parameters:
      enable - Set to true to enable, false to disable.
      Returns:
      Previous rpc throttle enabled value
      Throws:
      IOException - if a remote or network exception occurs
    • isRpcThrottleEnabled

      public boolean isRpcThrottleEnabled() throws IOException
      Description copied from interface: Admin
      Get if the rpc throttle is enabled.
      Specified by:
      isRpcThrottleEnabled in interface Admin
      Returns:
      True if rpc throttle is enabled
      Throws:
      IOException - if a remote or network exception occurs
    • exceedThrottleQuotaSwitch

      public boolean exceedThrottleQuotaSwitch(boolean enable) throws IOException
      Description copied from interface: Admin
      Switch the exceed throttle quota. If enabled, user/table/namespace throttle quota can be exceeded if region server has availble quota.
      Specified by:
      exceedThrottleQuotaSwitch in interface Admin
      Parameters:
      enable - Set to true to enable, false to disable.
      Returns:
      Previous exceed throttle enabled value
      Throws:
      IOException - if a remote or network exception occurs
    • listTableDescriptors

      Description copied from interface: Admin
      Get tableDescriptors.
      Specified by:
      listTableDescriptors in interface Admin
      Parameters:
      tableNames - List of table names
      Returns:
      returns a list of TableDescriptors
      Throws:
      IOException - if a remote or network exception occurs
    • getRegions

      public List<RegionInfo> getRegions(ServerName serverName)
      Description copied from interface: Admin
      Get all the online regions on a region server.
      Specified by:
      getRegions in interface Admin
      Returns:
      List of RegionInfo
    • flush

      public void flush(TableName tableName)
      Description copied from interface: Admin
      Flush a table. Synchronous operation.
      Specified by:
      flush in interface Admin
      Parameters:
      tableName - table to flush
    • flush

      public void flush(TableName tableName, byte[] columnFamily)
      Description copied from interface: Admin
      Flush the specified column family stores on all regions of the passed table. This runs as a synchronous operation.
      Specified by:
      flush in interface Admin
      Parameters:
      tableName - table to flush
      columnFamily - column family within a table
    • flush

      public void flush(TableName tableName, List<byte[]> columnFamilies)
      Description copied from interface: Admin
      Flush the specified column family stores on all regions of the passed table. This runs as a synchronous operation.
      Specified by:
      flush in interface Admin
      Parameters:
      tableName - table to flush
      columnFamilies - column families within a table
    • flushRegion

      public void flushRegion(byte[] regionName)
      Description copied from interface: Admin
      Flush an individual region. Synchronous operation.
      Specified by:
      flushRegion in interface Admin
      Parameters:
      regionName - region to flush
    • flushRegion

      public void flushRegion(byte[] regionName, byte[] columnFamily)
      Description copied from interface: Admin
      Flush a column family within a region. Synchronous operation.
      Specified by:
      flushRegion in interface Admin
      Parameters:
      regionName - region to flush
      columnFamily - column family within a region
    • flushRegionServer

      public void flushRegionServer(ServerName serverName)
      Description copied from interface: Admin
      Flush all regions on the region server. Synchronous operation.
      Specified by:
      flushRegionServer in interface Admin
      Parameters:
      serverName - the region server name to flush
    • compact

      public void compact(TableName tableName)
      Description copied from interface: Admin
      Compact a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compact in interface Admin
      Parameters:
      tableName - table to compact
    • compactRegion

      public void compactRegion(byte[] regionName)
      Description copied from interface: Admin
      Compact an individual region. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compactRegion in interface Admin
      Parameters:
      regionName - region to compact
    • compact

      public void compact(TableName tableName, byte[] columnFamily)
      Description copied from interface: Admin
      Compact a column family within a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compact in interface Admin
      Parameters:
      tableName - table to compact
      columnFamily - column family within a table
    • compactRegion

      public void compactRegion(byte[] regionName, byte[] columnFamily)
      Description copied from interface: Admin
      Compact a column family within a region. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compactRegion in interface Admin
      Parameters:
      regionName - region to compact
      columnFamily - column family within a region
    • compact

      public void compact(TableName tableName, CompactType compactType)
      Description copied from interface: Admin
      Compact a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compact in interface Admin
      Parameters:
      tableName - table to compact
      compactType - CompactType
    • compact

      public void compact(TableName tableName, byte[] columnFamily, CompactType compactType)
      Description copied from interface: Admin
      Compact a column family within a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compact in interface Admin
      Parameters:
      tableName - table to compact
      columnFamily - column family within a table
      compactType - CompactType
    • majorCompact

      public void majorCompact(TableName tableName)
      Description copied from interface: Admin
      Major compact a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompact in interface Admin
      Parameters:
      tableName - table to major compact
    • majorCompactRegion

      public void majorCompactRegion(byte[] regionName)
      Description copied from interface: Admin
      Major compact a table or an individual region. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompactRegion in interface Admin
      Parameters:
      regionName - region to major compact
    • majorCompact

      public void majorCompact(TableName tableName, byte[] columnFamily)
      Description copied from interface: Admin
      Major compact a column family within a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompact in interface Admin
      Parameters:
      tableName - table to major compact
      columnFamily - column family within a table
    • majorCompactRegion

      public void majorCompactRegion(byte[] regionName, byte[] columnFamily)
      Description copied from interface: Admin
      Major compact a column family within region. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompactRegion in interface Admin
      Parameters:
      regionName - egion to major compact
      columnFamily - column family within a region
    • majorCompact

      public void majorCompact(TableName tableName, CompactType compactType)
      Description copied from interface: Admin
      Major compact a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompact in interface Admin
      Parameters:
      tableName - table to compact
      compactType - CompactType
    • majorCompact

      public void majorCompact(TableName tableName, byte[] columnFamily, CompactType compactType)
      Description copied from interface: Admin
      Major compact a column family within a table. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompact in interface Admin
      Parameters:
      tableName - table to compact
      columnFamily - column family within a table
      compactType - CompactType
    • compactionSwitch

      public Map<ServerName,Boolean> compactionSwitch(boolean switchState, List<String> serverNamesList)
      Description copied from interface: Admin
      Turn the compaction on or off. Disabling compactions will also interrupt any currently ongoing compactions. This state is ephemeral. The setting will be lost on restart. Compaction can also be enabled/disabled by modifying configuration hbase.regionserver.compaction.enabled in hbase-site.xml.
      Specified by:
      compactionSwitch in interface Admin
      Parameters:
      switchState - Set to true to enable, false to disable.
      serverNamesList - list of region servers.
      Returns:
      Previous compaction states for region servers
    • compactRegionServer

      public void compactRegionServer(ServerName serverName)
      Description copied from interface: Admin
      Compact all regions on the region server. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      compactRegionServer in interface Admin
      Parameters:
      serverName - the region server name
    • majorCompactRegionServer

      public void majorCompactRegionServer(ServerName serverName)
      Description copied from interface: Admin
      Major compact all regions on the region server. Asynchronous operation in that this method requests that a Compaction run and then it returns. It does not wait on the completion of Compaction (it can take a while).
      Specified by:
      majorCompactRegionServer in interface Admin
      Parameters:
      serverName - the region server name
    • move

      public void move(byte[] encodedRegionName)
      Description copied from interface: Admin
      Move the region encodedRegionName to a random server.
      Specified by:
      move in interface Admin
      Parameters:
      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.
    • move

      public void move(byte[] encodedRegionName, ServerName destServerName)
      Description copied from interface: Admin
      Move the region encodedRegionName to destServerName.
      Specified by:
      move in interface Admin
      Parameters:
      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. A server name is made of host, port and startcode. Here is an example: host187.example.com,60020,1289493121758
    • assign

      public void assign(byte[] regionName)
      Description copied from interface: Admin
      Assign a Region.
      Specified by:
      assign in interface Admin
      Parameters:
      regionName - Region name to assign.
    • unassign

      public void unassign(byte[] regionName)
      Description copied from interface: Admin
      Unassign a Region.
      Specified by:
      unassign in interface Admin
      Parameters:
      regionName - Region name to unassign.
    • offline

      public void offline(byte[] regionName)
      Description copied from interface: 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.
      Specified by:
      offline in interface Admin
      Parameters:
      regionName - Region to offline.
    • balancerSwitch

      public boolean balancerSwitch(boolean onOrOff, boolean synchronous)
      Description copied from interface: Admin
      Turn the load balancer on or off.
      Specified by:
      balancerSwitch in interface Admin
      Parameters:
      onOrOff - Set to true to enable, false to disable.
      synchronous - If true, it waits until current balance() call, if outstanding, to return.
      Returns:
      Previous balancer value
    • balance

      public boolean balance()
      Description copied from interface: 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.
      Specified by:
      balance in interface Admin
      Returns:
      true if balancer ran, false otherwise.
    • balance

      public boolean balance(boolean force)
      Description copied from interface: Admin
      Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the reassignments. If there is region in transition, force parameter of true would still run balancer. Can *not* run for other reasons. Check logs.
      Specified by:
      balance in interface Admin
      Parameters:
      force - whether we should force balance even if there is region in transition
      Returns:
      true if balancer ran, false otherwise.
    • balance

      Description copied from interface: Admin
      Invoke the balancer with the given balance request. The BalanceRequest defines how the balancer will run. See BalanceRequest for more details.
      Specified by:
      balance in interface Admin
      Parameters:
      request - defines how the balancer should run
      Returns:
      BalanceResponse with details about the results of the invocation.
      Throws:
      IOException - if a remote or network exception occurs
    • isBalancerEnabled

      public boolean isBalancerEnabled()
      Description copied from interface: Admin
      Query the current state of the balancer.
      Specified by:
      isBalancerEnabled in interface Admin
      Returns:
      true if the balancer is enabled, false otherwise.
    • clearBlockCache

      Description copied from interface: Admin
      Clear all the blocks corresponding to this table from BlockCache. For expert-admins. Calling this API will drop all the cached blocks specific to a table from BlockCache. This can significantly impact the query performance as the subsequent queries will have to retrieve the blocks from underlying filesystem.
      Specified by:
      clearBlockCache in interface Admin
      Parameters:
      tableName - table to clear block cache
      Returns:
      CacheEvictionStats related to the eviction
    • normalize

      public boolean normalize(NormalizeTableFilterParams ntfp)
      Description copied from interface: Admin
      Invoke region normalizer. Can NOT run for various reasons. Check logs. This is a non-blocking invocation to region normalizer. If return value is true, it means the request was submitted successfully. We need to check logs for the details of which regions were split/merged.
      Specified by:
      normalize in interface Admin
      Parameters:
      ntfp - limit to tables matching the specified filter.
      Returns:
      true if region normalizer ran, false otherwise.
    • isNormalizerEnabled

      public boolean isNormalizerEnabled()
      Description copied from interface: Admin
      Query the current state of the region normalizer.
      Specified by:
      isNormalizerEnabled in interface Admin
      Returns:
      true if region normalizer is enabled, false otherwise.
    • normalizerSwitch

      public boolean normalizerSwitch(boolean on)
      Description copied from interface: Admin
      Turn region normalizer on or off.
      Specified by:
      normalizerSwitch in interface Admin
      Returns:
      Previous normalizer value
    • catalogJanitorSwitch

      public boolean catalogJanitorSwitch(boolean onOrOff)
      Description copied from interface: Admin
      Enable/Disable the catalog janitor/
      Specified by:
      catalogJanitorSwitch in interface Admin
      Parameters:
      onOrOff - if true enables the catalog janitor
      Returns:
      the previous state
    • runCatalogJanitor

      public int runCatalogJanitor()
      Description copied from interface: Admin
      Ask for a scan of the catalog table.
      Specified by:
      runCatalogJanitor in interface Admin
      Returns:
      the number of entries cleaned. Returns -1 if previous run is in progress.
    • isCatalogJanitorEnabled

      public boolean isCatalogJanitorEnabled()
      Description copied from interface: Admin
      Query on the catalog janitor state (Enabled/Disabled?).
      Specified by:
      isCatalogJanitorEnabled in interface Admin
    • cleanerChoreSwitch

      public boolean cleanerChoreSwitch(boolean onOrOff)
      Description copied from interface: Admin
      Enable/Disable the cleaner chore.
      Specified by:
      cleanerChoreSwitch in interface Admin
      Parameters:
      onOrOff - if true enables the cleaner chore
      Returns:
      the previous state
    • runCleanerChore

      public boolean runCleanerChore()
      Description copied from interface: Admin
      Ask for cleaner chore to run.
      Specified by:
      runCleanerChore in interface Admin
      Returns:
      true if cleaner chore ran, false otherwise
    • isCleanerChoreEnabled

      public boolean isCleanerChoreEnabled()
      Description copied from interface: Admin
      Query on the cleaner chore state (Enabled/Disabled?).
      Specified by:
      isCleanerChoreEnabled in interface Admin
    • mergeRegionsAsync

      public Future<Void> mergeRegionsAsync(byte[] nameOfRegionA, byte[] nameOfRegionB, boolean forcible)
      Description copied from interface: Admin
      Merge two regions. Asynchronous operation.
      Specified by:
      mergeRegionsAsync in interface Admin
      Parameters:
      nameOfRegionA - encoded or full name of region a
      nameOfRegionB - encoded or full name of region b
      forcible - true if do a compulsory merge, otherwise we will only merge two adjacent regions
    • mergeRegionsAsync

      public Future<Void> mergeRegionsAsync(byte[][] nameofRegionsToMerge, boolean forcible)
      Description copied from interface: Admin
      Merge multiple regions (>=2). Asynchronous operation.
      Specified by:
      mergeRegionsAsync in interface Admin
      Parameters:
      nameofRegionsToMerge - encoded or full name of daughter regions
      forcible - true if do a compulsory merge, otherwise we will only merge adjacent regions
    • split

      public void split(TableName tableName)
      Description copied from interface: Admin
      Split a table. The method will execute split action for each region in table.
      Specified by:
      split in interface Admin
      Parameters:
      tableName - table to split
    • split

      public void split(TableName tableName, byte[] splitPoint)
      Description copied from interface: Admin
      Split a table.
      Specified by:
      split in interface Admin
      Parameters:
      tableName - table to split
      splitPoint - the explicit position to split on
    • truncateRegion

      public void truncateRegion(byte[] regionName) throws IOException
      Description copied from interface: Admin
      Truncate an individual region.
      Specified by:
      truncateRegion in interface Admin
      Parameters:
      regionName - region to truncate
      Throws:
      IOException - if a remote or network exception occurs
    • truncateRegionAsync

      public Future<Void> truncateRegionAsync(byte[] regionName)
      Description copied from interface: Admin
      Truncate an individual region. Asynchronous operation.
      Specified by:
      truncateRegionAsync in interface Admin
      Parameters:
      regionName - region to truncate
    • splitRegionAsync

      public Future<Void> splitRegionAsync(byte[] regionName, byte[] splitPoint)
      Description copied from interface: Admin
      Split an individual region. Asynchronous operation.
      Specified by:
      splitRegionAsync in interface Admin
      Parameters:
      regionName - region to split
      splitPoint - the explicit position to split on
    • modifyTableAsync

      Description copied from interface: Admin
      Modify an existing table, more IRB (ruby) 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.
      Specified by:
      modifyTableAsync in interface Admin
      Parameters:
      td - description of the table
      Returns:
      the result of the async modify. You can use Future.get(long, TimeUnit) to wait on the operation to complete
    • modifyTableAsync

      public Future<Void> modifyTableAsync(TableDescriptor td, boolean reopenRegions)
      Description copied from interface: Admin
      The same as Admin.modifyTableAsync(TableDescriptor td), except for the reopenRegions parameter, which controls whether the process of modifying the table should reopen all regions.
      Specified by:
      modifyTableAsync in interface Admin
      Parameters:
      td - description of the table
      reopenRegions - By default, 'modifyTable' reopens all regions, potentially causing a RIT (Region In Transition) storm in large tables. If set to 'false', regions will remain unaware of the modification until they are individually reopened. Please note that this may temporarily result in configuration inconsistencies among regions.
      Returns:
      the result of the async modify. You can use Future.get(long, TimeUnit) to wait on the operation to complete
    • shutdown

      public void shutdown()
      Description copied from interface: Admin
      Shuts down the HBase cluster.

      Notice that, a success shutdown call may ends with an error since the remote server has already been shutdown.

      Specified by:
      shutdown in interface Admin
    • stopMaster

      public void stopMaster()
      Description copied from interface: Admin
      Shuts down the current HBase master only. Does not shutdown the cluster.

      Notice that, a success stopMaster call may ends with an error since the remote server has already been shutdown.

      Specified by:
      stopMaster in interface Admin
      See Also:
    • isMasterInMaintenanceMode

      public boolean isMasterInMaintenanceMode()
      Description copied from interface: Admin
      Check whether Master is in maintenance mode.
      Specified by:
      isMasterInMaintenanceMode in interface Admin
    • stopRegionServer

      public void stopRegionServer(String hostnamePort)
      Description copied from interface: Admin
      Stop the designated regionserver.
      Specified by:
      stopRegionServer in interface Admin
      Parameters:
      hostnamePort - Hostname and port delimited by a : as in example.org:1234
    • getClusterMetrics

      Description copied from interface: Admin
      Get cluster status with a set of ClusterMetrics.Option to get desired status.
      Specified by:
      getClusterMetrics in interface Admin
      Returns:
      cluster status
    • getRegionMetrics

      Description copied from interface: Admin
      Get RegionMetrics of all regions hosted on a regionserver.
      Specified by:
      getRegionMetrics in interface Admin
      Parameters:
      serverName - region server from which RegionMetrics is required.
      Returns:
      a RegionMetrics list of all regions hosted on a region server
    • getRegionMetrics

      public List<RegionMetrics> getRegionMetrics(ServerName serverName, TableName tableName)
      Description copied from interface: Admin
      Get RegionMetrics of all regions hosted on a regionserver for a table.
      Specified by:
      getRegionMetrics in interface Admin
      Parameters:
      serverName - region server from which RegionMetrics is required.
      tableName - get RegionMetrics of regions belonging to the table
      Returns:
      region metrics map of all regions of a table hosted on a region server
    • createNamespaceAsync

      Description copied from interface: Admin
      Create a new namespace.
      Specified by:
      createNamespaceAsync in interface Admin
      Parameters:
      descriptor - descriptor which describes the new namespace
      Returns:
      the result of the async create namespace operation. Use Future.get(long, TimeUnit) to wait on the operation to complete.
    • modifyNamespaceAsync

      Description copied from interface: Admin
      Modify an existing namespace.
      Specified by:
      modifyNamespaceAsync in interface Admin
      Parameters:
      descriptor - descriptor which describes the new namespace
      Returns:
      the result of the async modify namespace operation. Use Future.get(long, TimeUnit) to wait on the operation to complete.
    • getRegions

      public List<RegionInfo> getRegions(TableName tableName)
      Description copied from interface: Admin
      Get the regions of a given table.
      Specified by:
      getRegions in interface Admin
      Parameters:
      tableName - the name of the table
      Returns:
      List of RegionInfo.
    • abortProcedure

      public boolean abortProcedure(long procId, boolean mayInterruptIfRunning)
      Description copied from interface: Admin
      Abort a procedure.

      Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.

      Specified by:
      abortProcedure in interface Admin
      Parameters:
      procId - ID of the procedure to abort
      mayInterruptIfRunning - if the proc completed at least one step, should it be aborted?
      Returns:
      true if aborted, false if procedure already completed or does not exist
      See Also:
    • abortProcedureAsync

      public Future<Boolean> abortProcedureAsync(long procId, boolean mayInterruptIfRunning)
      Description copied from interface: Admin
      Abort a procedure but does not block and wait for completion. 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. Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.
      Specified by:
      abortProcedureAsync in interface Admin
      Parameters:
      procId - ID of the procedure to abort
      mayInterruptIfRunning - if the proc completed at least one step, should it be aborted?
      Returns:
      true if aborted, false if procedure already completed or does not exist
      See Also:
    • getProcedures

      Description copied from interface: Admin
      Get procedures.
      Specified by:
      getProcedures in interface Admin
      Returns:
      procedure list in JSON
    • getLocks

      public String getLocks()
      Description copied from interface: Admin
      Get locks.
      Specified by:
      getLocks in interface Admin
      Returns:
      lock list in JSON
    • rollWALWriter

      public void rollWALWriter(ServerName serverName)
      Description copied from interface: Admin
      Roll the log writer. I.e. for filesystem based write ahead logs, start writing to a new file. Note that the actual rolling of the log writer is asynchronous and may not be complete when this method returns. As a side effect of this call, the named region server may schedule store flushes at the request of the wal.
      Specified by:
      rollWALWriter in interface Admin
      Parameters:
      serverName - The servername of the regionserver.
    • getCompactionState

      Description copied from interface: Admin
      Get the current compaction state of a table. It could be in a major compaction, a minor compaction, both, or none.
      Specified by:
      getCompactionState in interface Admin
      Parameters:
      tableName - table to examine
      Returns:
      the current compaction state
    • getCompactionState

      public CompactionState getCompactionState(TableName tableName, CompactType compactType)
      Description copied from interface: Admin
      Get the current compaction state of a table. It could be in a compaction, or none.
      Specified by:
      getCompactionState in interface Admin
      Parameters:
      tableName - table to examine
      compactType - CompactType
      Returns:
      the current compaction state
    • getCompactionStateForRegion

      public CompactionState getCompactionStateForRegion(byte[] regionName)
      Description copied from interface: Admin
      Get the current compaction state of region. It could be in a major compaction, a minor compaction, both, or none.
      Specified by:
      getCompactionStateForRegion in interface Admin
      Parameters:
      regionName - region to examine
      Returns:
      the current compaction state
    • getLastMajorCompactionTimestamp

      public long getLastMajorCompactionTimestamp(TableName tableName)
      Description copied from interface: Admin
      Get the timestamp of the last major compaction for the passed table The timestamp of the oldest HFile resulting from a major compaction of that table, or 0 if no such HFile could be found.
      Specified by:
      getLastMajorCompactionTimestamp in interface Admin
      Parameters:
      tableName - table to examine
      Returns:
      the last major compaction timestamp or 0
    • getLastMajorCompactionTimestampForRegion

      public long getLastMajorCompactionTimestampForRegion(byte[] regionName)
      Description copied from interface: Admin
      Get the timestamp of the last major compaction for the passed region. The timestamp of the oldest HFile resulting from a major compaction of that region, or 0 if no such HFile could be found.
      Specified by:
      getLastMajorCompactionTimestampForRegion in interface Admin
      Parameters:
      regionName - region to examine
      Returns:
      the last major compaction timestamp or 0
    • snapshot

      public void snapshot(String snapshotName, TableName tableName)
      Description copied from interface: 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. Snapshots are taken sequentially even when requested concurrently, across all tables. 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[]).
      Specified by:
      snapshot in interface Admin
      Parameters:
      snapshotName - name of the snapshot to be created
      tableName - name of the table for which snapshot is created
    • snapshot

      public void snapshot(String snapshotName, TableName tableName, SnapshotType type)
      Description copied from interface: Admin
      Create typed snapshot of the table. Snapshots are considered unique based on the name of the snapshot. Snapshots are taken sequentially even when requested concurrently, across all tables. 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[]).
      Specified by:
      snapshot in interface Admin
      Parameters:
      snapshotName - name to give the snapshot on the filesystem. Must be unique from all other snapshots stored on the cluster
      tableName - name of the table to snapshot
      type - type of snapshot to take
    • snapshot

      public void snapshot(SnapshotDescription snapshot)
      Description copied from interface: Admin
      Take a snapshot and wait for the server to complete that snapshot (blocking). Snapshots are considered unique based on the name of the snapshot. Snapshots are taken sequentially even when requested concurrently, across all tables. 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 Admin.snapshot(String, org.apache.hadoop.hbase.TableName) unless you are sure about the type of snapshot that you want to take.
      Specified by:
      snapshot in interface Admin
      Parameters:
      snapshot - snapshot to take
    • snapshotAsync

      Description copied from interface: Admin
      Take a snapshot without waiting for the server to complete that snapshot (asynchronous). Snapshots are considered unique based on the name of the snapshot. Snapshots are taken sequentially even when requested concurrently, across all tables.
      Specified by:
      snapshotAsync in interface Admin
      Parameters:
      snapshot - snapshot to take
    • isSnapshotFinished

      public boolean isSnapshotFinished(SnapshotDescription snapshot)
      Description copied from interface: Admin
      Check the current state of the passed snapshot. There are three possible states:
      1. running - returns false
      2. finished - returns true
      3. finished with error - throws the exception that caused the snapshot to fail
      The cluster only knows about the most recent snapshot. Therefore, if another snapshot has been run/started since the snapshot you are checking, you will receive an UnknownSnapshotException.
      Specified by:
      isSnapshotFinished in interface Admin
      Parameters:
      snapshot - description of the snapshot to check
      Returns:
      true if the snapshot is completed, false if the snapshot is still running
    • restoreSnapshot

      public void restoreSnapshot(String snapshotName)
      Description copied from interface: Admin
      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.
      Specified by:
      restoreSnapshot in interface Admin
      Parameters:
      snapshotName - name of the snapshot to restore
    • restoreSnapshot

      public void restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot, boolean restoreAcl)
      Description copied from interface: Admin
      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".
      Specified by:
      restoreSnapshot in interface Admin
      Parameters:
      snapshotName - name of the snapshot to restore
      takeFailSafeSnapshot - true if the failsafe snapshot should be taken
      restoreAcl - true to restore acl of snapshot
    • cloneSnapshotAsync

      public Future<Void> cloneSnapshotAsync(String snapshotName, TableName tableName, boolean cloneAcl, String customSFT) throws IOException, TableExistsException, RestoreSnapshotException
      Description copied from interface: Admin
      Create a new table by cloning the snapshot content.
      Specified by:
      cloneSnapshotAsync in interface Admin
      Parameters:
      snapshotName - name of the snapshot to be cloned
      tableName - name of the table where the snapshot will be restored
      cloneAcl - true to clone acl into newly created table
      customSFT - specify the StroreFileTracker used for the table
      Throws:
      IOException - if a remote or network exception occurs
      TableExistsException - if table to be created already exists
      RestoreSnapshotException - if snapshot failed to be cloned
    • execProcedure

      public void execProcedure(String signature, String instance, Map<String,String> props)
      Description copied from interface: Admin
      Execute a distributed procedure on a cluster.
      Specified by:
      execProcedure in interface Admin
      Parameters:
      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 procedure
    • execProcedureWithReturn

      public byte[] execProcedureWithReturn(String signature, String instance, Map<String,String> props)
      Description copied from interface: Admin
      Execute a distributed procedure on a cluster.
      Specified by:
      execProcedureWithReturn in interface Admin
      Parameters:
      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 procedure
      Returns:
      data returned after procedure execution. null if no return data.
    • isProcedureFinished

      public boolean isProcedureFinished(String signature, String instance, Map<String,String> props)
      Description copied from interface: Admin
      Check the current state of the specified procedure. There are three possible states:
      1. running - returns false
      2. finished - returns true
      3. finished with error - throws the exception that caused the procedure to fail
      Specified by:
      isProcedureFinished in interface Admin
      Parameters:
      signature - The signature that uniquely identifies a procedure
      instance - The instance name of the procedure
      props - Property/Value pairs of properties passing to the procedure
      Returns:
      true if the specified procedure is finished successfully, false if it is still running
    • listSnapshots

      Description copied from interface: Admin
      List completed snapshots.
      Specified by:
      listSnapshots in interface Admin
      Returns:
      a list of snapshot descriptors for completed snapshots
    • listSnapshots

      Description copied from interface: Admin
      List all the completed snapshots matching the given pattern.
      Specified by:
      listSnapshots in interface Admin
      Parameters:
      pattern - The compiled regular expression to match against
      Returns:
      list of SnapshotDescription
    • listTableSnapshots

      public List<SnapshotDescription> listTableSnapshots(Pattern tableNamePattern, Pattern snapshotNamePattern)
      Description copied from interface: Admin
      List all the completed snapshots matching the given table name regular expression and snapshot name regular expression.
      Specified by:
      listTableSnapshots in interface Admin
      Parameters:
      tableNamePattern - The compiled table name regular expression to match against
      snapshotNamePattern - The compiled snapshot name regular expression to match against
      Returns:
      list of completed SnapshotDescription
    • deleteSnapshot

      public void deleteSnapshot(String snapshotName)
      Description copied from interface: Admin
      Delete an existing snapshot.
      Specified by:
      deleteSnapshot in interface Admin
      Parameters:
      snapshotName - name of the snapshot
    • deleteSnapshots

      public void deleteSnapshots(Pattern pattern)
      Description copied from interface: Admin
      Delete existing snapshots whose names match the pattern passed.
      Specified by:
      deleteSnapshots in interface Admin
      Parameters:
      pattern - pattern for names of the snapshot to match
    • deleteTableSnapshots

      public void deleteTableSnapshots(Pattern tableNamePattern, Pattern snapshotNamePattern)
      Description copied from interface: Admin
      Delete all existing snapshots matching the given table name regular expression and snapshot name regular expression.
      Specified by:
      deleteTableSnapshots in interface Admin
      Parameters:
      tableNamePattern - The compiled table name regular expression to match against
      snapshotNamePattern - The compiled snapshot name regular expression to match against
    • setQuota

      public void setQuota(QuotaSettings quota)
      Description copied from interface: Admin
      Apply the new quota settings.
      Specified by:
      setQuota in interface Admin
      Parameters:
      quota - the quota settings
    • getQuota

      Description copied from interface: Admin
      List the quotas based on the filter.
      Specified by:
      getQuota in interface Admin
      Parameters:
      filter - the quota settings filter
      Returns:
      the QuotaSetting list
    • coprocessorService

      Description copied from interface: Admin
      Creates and returns a 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);
       
      Specified by:
      coprocessorService in interface Admin
      Returns:
      A MasterCoprocessorRpcChannel instance
    • coprocessorService

      Description copied from interface: Admin
      Creates and returns a RpcChannel instance connected to the passed region server.

      The obtained RpcChannel instance can be used to access a published coprocessor Service using standard protobuf service invocations:

       CoprocessorRpcChannel channel = myAdmin.coprocessorService(serverName);
       MyService.BlockingInterface service = MyService.newBlockingStub(channel);
       MyCallRequest request = MyCallRequest.newBuilder()
           ...
           .build();
       MyCallResponse response = service.myCall(null, request);
       
      Specified by:
      coprocessorService in interface Admin
      Parameters:
      serverName - the server name to which the endpoint call is made
      Returns:
      A RegionServerCoprocessorRpcChannel instance
    • updateConfiguration

      public void updateConfiguration(ServerName server)
      Description copied from interface: Admin
      Update the configuration and trigger an online config change on the regionserver.
      Specified by:
      updateConfiguration in interface Admin
      Parameters:
      server - : The server whose config needs to be updated.
    • updateConfiguration

      public void updateConfiguration()
      Description copied from interface: Admin
      Update the configuration and trigger an online config change on all the regionservers.
      Specified by:
      updateConfiguration in interface Admin
    • updateConfiguration

      public void updateConfiguration(String groupName)
      Description copied from interface: Admin
      Update the configuration and trigger an online config change on all the regionservers in the RSGroup.
      Specified by:
      updateConfiguration in interface Admin
      Parameters:
      groupName - the group name
    • getSecurityCapabilities

      Description copied from interface: Admin
      Return the set of supported security capabilities.
      Specified by:
      getSecurityCapabilities in interface Admin
    • splitSwitch

      public boolean splitSwitch(boolean enabled, boolean synchronous)
      Description copied from interface: Admin
      Turn the split switch on or off.
      Specified by:
      splitSwitch in interface Admin
      Parameters:
      enabled - enabled or not
      synchronous - If true, it waits until current split() call, if outstanding, to return.
      Returns:
      Previous switch value
    • mergeSwitch

      public boolean mergeSwitch(boolean enabled, boolean synchronous)
      Description copied from interface: Admin
      Turn the merge switch on or off.
      Specified by:
      mergeSwitch in interface Admin
      Parameters:
      enabled - enabled or not
      synchronous - If true, it waits until current merge() call, if outstanding, to return.
      Returns:
      Previous switch value
    • isSplitEnabled

      public boolean isSplitEnabled()
      Description copied from interface: Admin
      Query the current state of the split switch.
      Specified by:
      isSplitEnabled in interface Admin
      Returns:
      true if the switch is enabled, false otherwise.
    • isMergeEnabled

      public boolean isMergeEnabled()
      Description copied from interface: Admin
      Query the current state of the merge switch.
      Specified by:
      isMergeEnabled in interface Admin
      Returns:
      true if the switch is enabled, false otherwise.
    • addReplicationPeerAsync

      public Future<Void> addReplicationPeerAsync(String peerId, ReplicationPeerConfig peerConfig, boolean enabled)
      Description copied from interface: Admin
      Add a new replication peer but does not block and wait for it.

      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.

      Specified by:
      addReplicationPeerAsync in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      peerConfig - configuration for the replication peer
      enabled - peer state, true if ENABLED and false if DISABLED
      Returns:
      the result of the async operation
    • removeReplicationPeerAsync

      Description copied from interface: Admin
      Remove a replication peer but does not block and wait for it.

      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.

      Specified by:
      removeReplicationPeerAsync in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      Returns:
      the result of the async operation
    • enableReplicationPeerAsync

      Description copied from interface: Admin
      Enable a replication peer but does not block and wait for it.

      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.

      Specified by:
      enableReplicationPeerAsync in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      Returns:
      the result of the async operation
    • disableReplicationPeerAsync

      Description copied from interface: Admin
      Disable a replication peer but does not block and wait for it.

      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.

      Specified by:
      disableReplicationPeerAsync in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      Returns:
      the result of the async operation
    • getReplicationPeerConfig

      Description copied from interface: Admin
      Returns the configured ReplicationPeerConfig for the specified peer.
      Specified by:
      getReplicationPeerConfig in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      Returns:
      ReplicationPeerConfig for the peer
    • updateReplicationPeerConfigAsync

      Description copied from interface: Admin
      Update the peerConfig for the specified peer but does not block and wait for it.

      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.

      Specified by:
      updateReplicationPeerConfigAsync in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      peerConfig - new config for the replication peer
      Returns:
      the result of the async operation
    • listReplicationPeers

      Description copied from interface: Admin
      Return a list of replication peers.
      Specified by:
      listReplicationPeers in interface Admin
      Returns:
      a list of replication peers description
    • listReplicationPeers

      Description copied from interface: Admin
      Return a list of replication peers.
      Specified by:
      listReplicationPeers in interface Admin
      Parameters:
      pattern - The compiled regular expression to match peer id
      Returns:
      a list of replication peers description
    • transitReplicationPeerSyncReplicationStateAsync

      Description copied from interface: Admin
      Transit current cluster to a new state in a synchronous replication peer. But does not block and wait for it.

      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.

      Specified by:
      transitReplicationPeerSyncReplicationStateAsync in interface Admin
      Parameters:
      peerId - a short name that identifies the peer
      state - a new state of current cluster
    • isReplicationPeerEnabled

      public boolean isReplicationPeerEnabled(String peerId) throws IOException
      Description copied from interface: Admin
      Check if a replication peer is enabled.
      Specified by:
      isReplicationPeerEnabled in interface Admin
      Parameters:
      peerId - id of replication peer to check
      Returns:
      true if replication peer is enabled
      Throws:
      IOException - if a remote or network exception occurs
    • decommissionRegionServers

      public void decommissionRegionServers(List<ServerName> servers, boolean offload)
      Description copied from interface: Admin
      Mark region server(s) as decommissioned to prevent additional regions from getting assigned to them. Optionally unload the regions on the servers. If there are multiple servers to be decommissioned, decommissioning them at the same time can prevent wasteful region movements. Region unloading is asynchronous.
      Specified by:
      decommissionRegionServers in interface Admin
      Parameters:
      servers - The list of servers to decommission.
      offload - True to offload the regions from the decommissioned servers
    • listDecommissionedRegionServers

      Description copied from interface: Admin
      List region servers marked as decommissioned, which can not be assigned regions.
      Specified by:
      listDecommissionedRegionServers in interface Admin
      Returns:
      List of decommissioned region servers.
    • recommissionRegionServer

      public void recommissionRegionServer(ServerName server, List<byte[]> encodedRegionNames)
      Description copied from interface: Admin
      Remove decommission marker from a region server to allow regions assignments. Load regions onto the server if a list of regions is given. Region loading is asynchronous.
      Specified by:
      recommissionRegionServer in interface Admin
      Parameters:
      server - The server to recommission.
      encodedRegionNames - Regions to load onto the server.
    • listReplicatedTableCFs

      Description copied from interface: Admin
      Find all table and column families that are replicated from this cluster
      Specified by:
      listReplicatedTableCFs in interface Admin
      Returns:
      the replicated table-cfs list of this cluster.
    • enableTableReplication

      public void enableTableReplication(TableName tableName)
      Description copied from interface: Admin
      Enable a table's replication switch.
      Specified by:
      enableTableReplication in interface Admin
      Parameters:
      tableName - name of the table
    • disableTableReplication

      public void disableTableReplication(TableName tableName)
      Description copied from interface: Admin
      Disable a table's replication switch.
      Specified by:
      disableTableReplication in interface Admin
      Parameters:
      tableName - name of the table
    • clearCompactionQueues

      public void clearCompactionQueues(ServerName serverName, Set<String> queues)
      Description copied from interface: Admin
      Clear compacting queues on a regionserver.
      Specified by:
      clearCompactionQueues in interface Admin
      Parameters:
      serverName - the region server name
      queues - the set of queue name
    • clearDeadServers

      Description copied from interface: Admin
      Clear dead region servers from master.
      Specified by:
      clearDeadServers in interface Admin
      Parameters:
      servers - list of dead region servers.
      Returns:
      List of servers that are not cleared
    • cloneTableSchema

      public void cloneTableSchema(TableName tableName, TableName newTableName, boolean preserveSplits)
      Description copied from interface: Admin
      Create a new table by cloning the existent table schema.
      Specified by:
      cloneTableSchema in interface Admin
      Parameters:
      tableName - name of the table to be cloned
      newTableName - name of the new table where the table will be created
      preserveSplits - True if the splits should be preserved
    • createTableAsync

      Description copied from interface: 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.

      Throws IllegalArgumentException Bad table name, if the split keys are repeated and if the split key has empty byte array.

      Specified by:
      createTableAsync in interface Admin
      Parameters:
      desc - table descriptor for table
      Returns:
      the result of the async creation. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • createTableAsync

      public Future<Void> createTableAsync(TableDescriptor desc, byte[][] splitKeys)
      Description copied from interface: 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. Throws IllegalArgumentException Bad table name, if the split keys are repeated and if the split key has empty byte array.
      Specified by:
      createTableAsync in interface Admin
      Parameters:
      desc - table descriptor for table
      splitKeys - keys to check if the table has been created with all split keys
      Returns:
      the result of the async creation. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • deleteTableAsync

      public Future<Void> deleteTableAsync(TableName tableName)
      Description copied from interface: Admin
      Deletes the table but does not block and wait for it to 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.
      Specified by:
      deleteTableAsync in interface Admin
      Parameters:
      tableName - name of table to delete
      Returns:
      the result of the async delete. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • truncateTableAsync

      public Future<Void> truncateTableAsync(TableName tableName, boolean preserveSplits)
      Description copied from interface: Admin
      Truncate the table but does not block and wait for it to 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.
      Specified by:
      truncateTableAsync in interface Admin
      Parameters:
      tableName - name of table to delete
      preserveSplits - true if the splits should be preserved
      Returns:
      the result of the async truncate. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • enableTableAsync

      public Future<Void> enableTableAsync(TableName tableName)
      Description copied from interface: Admin
      Enable the table but does not block and wait for it to 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.
      Specified by:
      enableTableAsync in interface Admin
      Parameters:
      tableName - name of table to delete
      Returns:
      the result of the async enable. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • disableTableAsync

      public Future<Void> disableTableAsync(TableName tableName)
      Description copied from interface: Admin
      Disable the table but does not block and wait for it to 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.
      Specified by:
      disableTableAsync in interface Admin
      Parameters:
      tableName - name of table to delete
      Returns:
      the result of the async disable. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • deleteColumnFamilyAsync

      public Future<Void> deleteColumnFamilyAsync(TableName tableName, byte[] columnFamily)
      Description copied from interface: Admin
      Delete a column family from a table. Asynchronous operation. 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.
      Specified by:
      deleteColumnFamilyAsync in interface Admin
      Parameters:
      tableName - name of table
      columnFamily - name of column family to be deleted
      Returns:
      the result of the async delete column family. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • addColumnFamilyAsync

      public Future<Void> addColumnFamilyAsync(TableName tableName, ColumnFamilyDescriptor columnFamily)
      Description copied from interface: Admin
      Add a column family to an existing table. Asynchronous operation. 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.
      Specified by:
      addColumnFamilyAsync in interface Admin
      Parameters:
      tableName - name of the table to add column family to
      columnFamily - column family descriptor of column family to be added
      Returns:
      the result of the async add column family. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • modifyColumnFamilyAsync

      Description copied from interface: Admin
      Modify an existing column family on a table. Asynchronous operation. 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.
      Specified by:
      modifyColumnFamilyAsync in interface Admin
      Parameters:
      tableName - name of table
      columnFamily - new column family descriptor to use
      Returns:
      the result of the async modify column family. You can use Future.get(long, TimeUnit) to wait on the operation to complete.
    • deleteNamespaceAsync

      Description copied from interface: Admin
      Delete an existing namespace. Only empty namespaces (no tables) can be removed.
      Specified by:
      deleteNamespaceAsync in interface Admin
      Parameters:
      name - namespace name
      Returns:
      the result of the async delete namespace operation. Use Future.get(long, TimeUnit) to wait on the operation to complete.
    • getSpaceQuotaTableSizes

      Description copied from interface: Admin
      Fetches the table sizes on the filesystem as tracked by the HBase Master.
      Specified by:
      getSpaceQuotaTableSizes in interface Admin
      Throws:
      IOException - if a remote or network exception occurs
    • getRegionServerSpaceQuotaSnapshots

      Description copied from interface: Admin
      Fetches the observed SpaceQuotaSnapshotViews observed by a RegionServer.
      Specified by:
      getRegionServerSpaceQuotaSnapshots in interface Admin
      Throws:
      IOException - if a remote or network exception occurs
    • getCurrentSpaceQuotaSnapshot

      Description copied from interface: Admin
      Returns the Master's view of a quota on the given namespace or null if the Master has no quota information on that namespace.
      Specified by:
      getCurrentSpaceQuotaSnapshot in interface Admin
      Throws:
      IOException - if a remote or network exception occurs
    • getCurrentSpaceQuotaSnapshot

      Description copied from interface: Admin
      Returns the Master's view of a quota on the given tableName or null if the Master has no quota information on that table.
      Specified by:
      getCurrentSpaceQuotaSnapshot in interface Admin
      Throws:
      IOException - if a remote or network exception occurs
    • grant

      public void grant(UserPermission userPermission, boolean mergeExistingPermissions)
      Description copied from interface: Admin
      Grants user specific permissions
      Specified by:
      grant in interface Admin
      Parameters:
      userPermission - user name and the specific permission
      mergeExistingPermissions - If set to false, later granted permissions will override previous granted permissions. otherwise, it'll merge with previous granted permissions.
    • revoke

      public void revoke(UserPermission userPermission)
      Description copied from interface: Admin
      Revokes user specific permissions
      Specified by:
      revoke in interface Admin
      Parameters:
      userPermission - user name and the specific permission
    • getUserPermissions

      public List<UserPermission> getUserPermissions(GetUserPermissionsRequest getUserPermissionsRequest)
      Description copied from interface: Admin
      Get the global/namespace/table permissions for user
      Specified by:
      getUserPermissions in interface Admin
      Parameters:
      getUserPermissionsRequest - A request contains which user, global, namespace or table permissions needed
      Returns:
      The user and permission list
    • hasUserPermissions

      public List<Boolean> hasUserPermissions(String userName, List<Permission> permissions)
      Description copied from interface: Admin
      Check if the user has specific permissions
      Specified by:
      hasUserPermissions in interface Admin
      Parameters:
      userName - the user name
      permissions - the specific permission list
      Returns:
      True if user has the specific permissions
    • snapshotCleanupSwitch

      public boolean snapshotCleanupSwitch(boolean on, boolean synchronous)
      Description copied from interface: Admin
      Turn on or off the auto snapshot cleanup based on TTL.
      Specified by:
      snapshotCleanupSwitch in interface Admin
      Parameters:
      on - Set to true to enable, false to disable.
      synchronous - If true, it waits until current snapshot cleanup is completed, if outstanding.
      Returns:
      Previous auto snapshot cleanup value
    • isSnapshotCleanupEnabled

      public boolean isSnapshotCleanupEnabled()
      Description copied from interface: Admin
      Query the current state of the auto snapshot cleanup based on TTL.
      Specified by:
      isSnapshotCleanupEnabled in interface Admin
      Returns:
      true if the auto snapshot cleanup is enabled, false otherwise.
    • getSlowLogResponses

      public List<OnlineLogRecord> getSlowLogResponses(Set<ServerName> serverNames, LogQueryFilter logQueryFilter) throws IOException
      Description copied from interface: Admin
      Retrieves online slow/large RPC logs from the provided list of RegionServers
      Specified by:
      getSlowLogResponses in interface Admin
      Parameters:
      serverNames - Server names to get slowlog responses from
      logQueryFilter - filter to be used if provided (determines slow / large RPC logs)
      Returns:
      online slowlog response list
      Throws:
      IOException - if a remote or network exception occurs
    • clearSlowLogResponses

      Description copied from interface: Admin
      Clears online slow/large RPC logs from the provided list of RegionServers
      Specified by:
      clearSlowLogResponses in interface Admin
      Parameters:
      serverNames - Set of Server names to clean slowlog responses from
      Returns:
      List of booleans representing if online slowlog response buffer is cleaned from each RegionServer
      Throws:
      IOException - if a remote or network exception occurs
    • getRSGroup

      public RSGroupInfo getRSGroup(String groupName)
      Description copied from interface: Admin
      Get group info for the given group name
      Specified by:
      getRSGroup in interface Admin
      Parameters:
      groupName - the group name
      Returns:
      group info
    • moveServersToRSGroup

      public void moveServersToRSGroup(Set<Address> servers, String targetGroup)
      Description copied from interface: Admin
      Move given set of servers to the specified target RegionServer group
      Specified by:
      moveServersToRSGroup in interface Admin
      Parameters:
      servers - set of servers to move
      targetGroup - the group to move servers to
    • addRSGroup

      public void addRSGroup(String groupName)
      Description copied from interface: Admin
      Creates a new RegionServer group with the given name
      Specified by:
      addRSGroup in interface Admin
      Parameters:
      groupName - the name of the group
    • removeRSGroup

      public void removeRSGroup(String groupName)
      Description copied from interface: Admin
      Remove RegionServer group associated with the given name
      Specified by:
      removeRSGroup in interface Admin
      Parameters:
      groupName - the group name
    • balanceRSGroup

      public BalanceResponse balanceRSGroup(String groupName, BalanceRequest request)
      Description copied from interface: Admin
      Balance regions in the given RegionServer group, running based on the given BalanceRequest.
      Specified by:
      balanceRSGroup in interface Admin
      Returns:
      BalanceResponse details about the balancer run
    • listRSGroups

      Description copied from interface: Admin
      Lists current set of RegionServer groups
      Specified by:
      listRSGroups in interface Admin
    • getRSGroup

      public RSGroupInfo getRSGroup(Address hostPort)
      Description copied from interface: Admin
      Get group info for the given hostPort
      Specified by:
      getRSGroup in interface Admin
      Parameters:
      hostPort - HostPort to get RSGroupInfo for
    • removeServersFromRSGroup

      public void removeServersFromRSGroup(Set<Address> servers)
      Description copied from interface: Admin
      Remove decommissioned servers from group 1. Sometimes we may find the server aborted due to some hardware failure and we must offline the server for repairing. Or we need to move some servers to join other clusters. So we need to remove these servers from the group. 2. Dead/recovering/live servers will be disallowed.
      Specified by:
      removeServersFromRSGroup in interface Admin
      Parameters:
      servers - set of servers to remove
    • getRSGroup

      public RSGroupInfo getRSGroup(TableName tableName)
      Description copied from interface: Admin
      Get group info for the given table
      Specified by:
      getRSGroup in interface Admin
      Parameters:
      tableName - table name to get RSGroupInfo for
    • setRSGroup

      public void setRSGroup(Set<TableName> tables, String groupName)
      Description copied from interface: Admin
      Set the RegionServer group for tables
      Specified by:
      setRSGroup in interface Admin
      Parameters:
      tables - tables to set group for
      groupName - group name for tables
    • splitRegionAsync

      public Future<Void> splitRegionAsync(byte[] regionName) throws IOException
      Description copied from interface: Admin
      Split an individual region. Asynchronous operation.
      Specified by:
      splitRegionAsync in interface Admin
      Parameters:
      regionName - region to split
      Throws:
      IOException - if a remote or network exception occurs
    • listTablesInRSGroup

      public List<TableName> listTablesInRSGroup(String groupName) throws IOException
      Description copied from interface: Admin
      Get all tables in this RegionServer group.
      Specified by:
      listTablesInRSGroup in interface Admin
      Parameters:
      groupName - the group name
      Throws:
      IOException - if a remote or network exception occurs
      See Also:
    • getConfiguredNamespacesAndTablesInRSGroup

      Description copied from interface: Admin
      Get the namespaces and tables which have this RegionServer group in descriptor.

      The difference between this method and Admin.listTablesInRSGroup(String) is that, this method will not include the table which is actually in this RegionServr group but without the RegionServer group configuration in its TableDescriptor. For example, we have a group 'A', and we make namespace 'nsA' in this group, then all the tables under this namespace will in the group 'A', but this method will not return these tables but only the namespace 'nsA', while the Admin.listTablesInRSGroup(String) will return all these tables.

      Specified by:
      getConfiguredNamespacesAndTablesInRSGroup in interface Admin
      Parameters:
      groupName - the group name
      Throws:
      IOException - if a remote or network exception occurs
      See Also:
    • renameRSGroup

      public void renameRSGroup(String oldName, String newName) throws IOException
      Description copied from interface: Admin
      Rename rsgroup
      Specified by:
      renameRSGroup in interface Admin
      Parameters:
      oldName - old rsgroup name
      newName - new rsgroup name
      Throws:
      IOException - if a remote or network exception occurs
    • updateRSGroupConfig

      public void updateRSGroupConfig(String groupName, Map<String,String> configuration) throws IOException
      Description copied from interface: Admin
      Update RSGroup configuration
      Specified by:
      updateRSGroupConfig in interface Admin
      Parameters:
      groupName - the group name
      configuration - new configuration of the group name to be set
      Throws:
      IOException - if a remote or network exception occurs
    • getLogEntries

      public List<LogEntry> getLogEntries(Set<ServerName> serverNames, String logType, ServerType serverType, int limit, Map<String,Object> filterParams) throws IOException
      Description copied from interface: Admin
      Retrieve recent online records from HMaster / RegionServers. Examples include slow/large RPC logs, balancer decisions by master.
      Specified by:
      getLogEntries in interface Admin
      Parameters:
      serverNames - servers to retrieve records from, useful in case of records maintained by RegionServer as we can select specific server. In case of servertype=MASTER, logs will only come from the currently active master.
      logType - string representing type of log records
      serverType - enum for server type: HMaster or RegionServer
      limit - put a limit to list of records that server should send in response
      filterParams - additional filter params
      Returns:
      Log entries representing online records from servers
      Throws:
      IOException - if a remote or network exception occurs
    • modifyColumnFamilyStoreFileTrackerAsync

      public Future<Void> modifyColumnFamilyStoreFileTrackerAsync(TableName tableName, byte[] family, String dstSFT) throws IOException
      Description copied from interface: Admin
      Change the store file tracker of the given table's given family.
      Specified by:
      modifyColumnFamilyStoreFileTrackerAsync in interface Admin
      Parameters:
      tableName - the table you want to change
      family - the family you want to change
      dstSFT - the destination store file tracker
      Returns:
      the result of the async modify. You can use Future.get(long, TimeUnit) to wait on the operation to complete
      Throws:
      IOException - if a remote or network exception occurs
    • modifyTableStoreFileTrackerAsync

      Description copied from interface: Admin
      Change the store file tracker of the given table.
      Specified by:
      modifyTableStoreFileTrackerAsync in interface Admin
      Parameters:
      tableName - the table you want to change
      dstSFT - the destination store file tracker
      Returns:
      the result of the async modify. You can use Future.get(long, TimeUnit) to wait on the operation to complete
      Throws:
      IOException - if a remote or network exception occurs
    • flushMasterStore

      public void flushMasterStore() throws IOException
      Description copied from interface: Admin
      Flush master local region
      Specified by:
      flushMasterStore in interface Admin
      Throws:
      IOException
    • getCachedFilesList

      public List<String> getCachedFilesList(ServerName serverName) throws IOException
      Description copied from interface: Admin
      Get the list of cached files
      Specified by:
      getCachedFilesList in interface Admin
      Throws:
      IOException
    • replicationPeerModificationSwitch

      public boolean replicationPeerModificationSwitch(boolean on, boolean drainProcedures) throws IOException
      Description copied from interface: Admin
      Enable or disable replication peer modification.

      This is especially useful when you want to change the replication peer storage.

      Specified by:
      replicationPeerModificationSwitch in interface Admin
      Parameters:
      on - true means enable, otherwise disable
      drainProcedures - if true, will wait until all the running replication peer modification procedures finish
      Returns:
      the previous enable/disable state
      Throws:
      IOException
    • isReplicationPeerModificationEnabled

      Description copied from interface: Admin
      Check whether replication peer modification is enabled.
      Specified by:
      isReplicationPeerModificationEnabled in interface Admin
      Returns:
      true if modification is enabled, otherwise false
      Throws:
      IOException