@InterfaceAudience.Private public class ConnectionImplementation extends Object implements ClusterConnection, Closeable
Connection and ClusterConnection interfaces. Encapsulates
connection to zookeeper and regionservers.| Modifier and Type | Field and Description |
|---|---|
protected String |
clusterId |
static String |
RETRIES_BY_SERVER_KEY |
protected User |
user |
HBASE_CLIENT_CONNECTION_IMPL| Modifier and Type | Method and Description |
|---|---|
void |
abort(String msg,
Throwable t)
Abort the server or client.
|
void |
cacheLocation(TableName tableName,
RegionLocations location)
Put a newly discovered HRegionLocation into the cache.
|
void |
clearCaches(ServerName serverName)
Clear any caches that pertain to server name
sn. |
void |
clearRegionCache(TableName tableName)
Allows flushing the region cache of all locations that pertain to
tableName |
void |
clearRegionCache(TableName tableName,
byte[] row) |
void |
clearRegionLocationCache()
Clear all the entries in the region location cache, for all the tables.
|
void |
close() |
void |
deleteCachedRegionLocation(HRegionLocation location)
Deletes cached locations for the specific region.
|
protected void |
finalize()
Close the connection for good.
|
Admin |
getAdmin()
Retrieve an Admin implementation to administer an HBase cluster.
|
org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface |
getAdmin(ServerName serverName)
Establishes a connection to the region server at the specified address.
|
org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface |
getAdminForMaster()
Get the admin service for master.
|
org.apache.hadoop.hbase.client.AsyncProcess |
getAsyncProcess()
Returns Default AsyncProcess associated with this connection.
|
ClientBackoffPolicy |
getBackoffPolicy()
Returns the configured client backoff policy
|
BufferedMutator |
getBufferedMutator(BufferedMutatorParams params)
Retrieve a
BufferedMutator for performing client-side buffering of writes. |
BufferedMutator |
getBufferedMutator(TableName tableName)
Retrieve a
BufferedMutator for performing client-side buffering of writes. |
org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.BlockingInterface |
getClient(ServerName serverName)
Establishes a connection to the region server at the specified address, and returns a region
client protocol.
|
String |
getClusterId()
Returns the cluster ID unique to this HBase cluster.
|
org.apache.hadoop.conf.Configuration |
getConfiguration()
Returns Configuration instance being used by this Connection instance.
|
ConnectionConfiguration |
getConnectionConfiguration()
Returns a ConnectionConfiguration object holding parsed configuration values
|
MetricsConnection |
getConnectionMetrics()
Returns the MetricsConnection instance associated with this connection.
|
ConnectionRegistry |
getConnectionRegistry()
Get the
ConnectionRegistry used to orient this cluster. |
protected ExecutorService |
getCurrentBatchPool() |
protected ExecutorService |
getCurrentMetaLookupPool() |
Hbck |
getHbck()
Retrieve an Hbck implementation to fix an HBase cluster.
|
Hbck |
getHbck(ServerName masterServer)
Retrieve an Hbck implementation to fix an HBase cluster.
|
org.apache.hadoop.hbase.client.MasterKeepAliveConnection |
getMaster()
Returns a
MasterKeepAliveConnection to the active master |
RpcRetryingCallerFactory |
getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration conf)
Returns a new RpcRetryingCallerFactory from the given
Configuration. |
NonceGenerator |
getNonceGenerator()
Returns Nonce generator for this ClusterConnection; may be null if disabled in configuration.
|
HRegionLocation |
getRegionLocation(TableName tableName,
byte[] row,
boolean reload)
Find region location hosting passed row
|
RegionLocator |
getRegionLocator(TableName tableName)
Retrieve a RegionLocator implementation to inspect region information on a table.
|
RpcControllerFactory |
getRpcControllerFactory()
Returns Connection's RpcControllerFactory instance
|
RpcRetryingCallerFactory |
getRpcRetryingCallerFactory()
Returns Connection's RpcRetryingCallerFactory instance
|
ServerStatisticTracker |
getStatisticsTracker()
Returns the current statistics tracker associated with this connection
|
Table |
getTable(TableName tableName)
Retrieve a Table implementation for accessing a table.
|
TableBuilder |
getTableBuilder(TableName tableName,
ExecutorService pool)
Returns an
TableBuilder for creating Table. |
TableState |
getTableState(TableName tableName)
Retrieve TableState, represent current table state.
|
User |
getUser()
Get the
User associated with this connection. |
boolean |
hasCellBlockSupport()
Returns true when this connection uses a
Codec and so
supports cell blocks. |
boolean |
isAborted()
Check if the server or client was aborted.
|
boolean |
isClosed()
Returns whether the connection is closed or not.
|
boolean |
isMasterRunning()
Deprecated.
this has been deprecated without a replacement
|
boolean |
isTableAvailable(TableName tableName,
byte[][] splitKeys)
Use this api to check if the table has been created with the specified number of splitkeys
which was used while creating the given table.
|
boolean |
isTableDisabled(TableName tableName)
Check if a table is disabled.
|
boolean |
isTableEnabled(TableName tableName)
A table that isTableEnabled == false and isTableDisabled == false is possible.
|
HRegionLocation |
locateRegion(byte[] regionName)
Gets the location of the region of regionName.
|
HRegionLocation |
locateRegion(TableName tableName,
byte[] row)
Find the location of the region of tableName that row lives in.
|
RegionLocations |
locateRegion(TableName tableName,
byte[] row,
boolean useCache,
boolean retry)
Gets the locations of the region in the specified table, tableName, for a given row.
|
RegionLocations |
locateRegion(TableName tableName,
byte[] row,
boolean useCache,
boolean retry,
int replicaId)
Gets the locations of the region in the specified table, tableName, for a given row.
|
List<HRegionLocation> |
locateRegions(TableName tableName)
Gets the locations of all regions in the specified table, tableName.
|
List<HRegionLocation> |
locateRegions(TableName tableName,
boolean useCache,
boolean offlined)
Gets the locations of all regions in the specified table, tableName.
|
HRegionLocation |
relocateRegion(TableName tableName,
byte[] row)
Find the location of the region of tableName that row lives in, ignoring any
value that might be in the cache.
|
RegionLocations |
relocateRegion(TableName tableName,
byte[] row,
int replicaId)
Find the location of the region of tableName that row lives in, ignoring any
value that might be in the cache.
|
protected void |
retrieveClusterId() |
String |
toString()
An identifier that will remain the same for a given connection.
|
void |
updateCachedLocations(TableName tableName,
byte[] regionName,
byte[] rowkey,
Object exception,
ServerName source)
Update the location with the new value (if the exception is a RegionMovedException) or delete
it from the cache.
|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitclearRegionCachegetTablepublic static final String RETRIES_BY_SERVER_KEY
protected User user
protected String clusterId
public Table getTable(TableName tableName) throws IOException
Connection
The caller is responsible for calling Table.close() on the returned table instance.
Since 0.98.1 this method no longer checks table existence. An exception will be thrown if the table does not exist only when the first operation is attempted.
getTable in interface ConnectiontableName - the name of the tableIOExceptionpublic TableBuilder getTableBuilder(TableName tableName, ExecutorService pool)
ConnectionTableBuilder for creating Table.getTableBuilder in interface ConnectiontableName - the name of the tablepool - the thread pool to use for requests like batch and scanpublic BufferedMutator getBufferedMutator(BufferedMutatorParams params)
ConnectionBufferedMutator for performing client-side buffering of writes. The
BufferedMutator returned by this method is thread-safe. This object can be used for
long lived table operations. If user passes ThreadPool in BufferedMutatorParams then we will
use that otherwise we will create for the user. For user specified ThreadPool, it is the user's
responsibility to shutdown. For ThreadPool created by us, we will shutdown when user calls
BufferedMutator.close(). The caller is responsible for calling
BufferedMutator.close() on the returned BufferedMutator instance.getBufferedMutator in interface Connectionparams - details on how to instantiate the BufferedMutator.BufferedMutator for the supplied tableName.public BufferedMutator getBufferedMutator(TableName tableName)
Connection
Retrieve a BufferedMutator for performing client-side buffering of writes. The
BufferedMutator returned by this method is thread-safe. This accessor will create a new
ThreadPoolExecutor and will be shutdown once we close the BufferedMutator. This object can be
used for long lived operations.
The caller is responsible for calling BufferedMutator.close() on the returned
BufferedMutator instance.
getBufferedMutator in interface ConnectiontableName - the name of the tableBufferedMutator for the supplied tableName.public RegionLocator getRegionLocator(TableName tableName) throws IOException
ConnectionCloseable.close() on the returned
RegionLocator instance. RegionLocator needs to be unmanagedgetRegionLocator in interface ConnectiontableName - Name of the table who's region is to be examinedIOExceptionpublic Admin getAdmin() throws IOException
ConnectionAdmin.close() on the returned Admin instance.getAdmin in interface ConnectionIOExceptionpublic Hbck getHbck() throws IOException
ConnectionCloseable.close() on the returned Hbck instance. getHbck in interface ConnectionIOExceptionpublic Hbck getHbck(ServerName masterServer) throws IOException
ConnectionCloseable.close() on the returned Hbck instance. getHbck in interface ConnectionmasterServer - explicit ServerName for master serverIOExceptionpublic MetricsConnection getConnectionMetrics()
ClusterConnectiongetConnectionMetrics in interface ClusterConnectionpublic User getUser()
ClusterConnectionUser associated with this connection. May be null.getUser in interface ClusterConnectionpublic ConnectionRegistry getConnectionRegistry()
ClusterConnectionConnectionRegistry used to orient this cluster.getConnectionRegistry in interface ClusterConnectionprotected ExecutorService getCurrentMetaLookupPool()
protected ExecutorService getCurrentBatchPool()
public String toString()
protected void retrieveClusterId()
public org.apache.hadoop.conf.Configuration getConfiguration()
ConnectiongetConfiguration in interface Connection@Deprecated public boolean isMasterRunning() throws MasterNotRunningException, ZooKeeperConnectionException
isMasterRunning in interface ClusterConnectionMasterNotRunningException - - if the master is not runningZooKeeperConnectionExceptionpublic HRegionLocation getRegionLocation(TableName tableName, byte[] row, boolean reload) throws IOException
ClusterConnectiongetRegionLocation in interface ClusterConnectiontableName - table namerow - Row to find.reload - If true do not use cache, otherwise bypass.IOException - if a remote or network exception occurspublic boolean isTableEnabled(TableName tableName) throws IOException
ClusterConnectionisTableEnabled in interface ClusterConnectiontableName - table nameIOException - if a remote or network exception occurspublic boolean isTableDisabled(TableName tableName) throws IOException
ClusterConnectionisTableDisabled in interface ClusterConnectiontableName - table nameIOException - if a remote or network exception occurspublic boolean isTableAvailable(TableName tableName, @Nullable byte[][] splitKeys) throws IOException
ClusterConnectionisTableAvailable in interface ClusterConnectionIOExceptionpublic HRegionLocation locateRegion(byte[] regionName) throws IOException
ClusterConnectionlocateRegion in interface ClusterConnectionregionName - name of the region to locateIOException - if a remote or network exception occurspublic List<HRegionLocation> locateRegions(TableName tableName) throws IOException
ClusterConnectionlocateRegions in interface ClusterConnectiontableName - table to get regions ofIOException - if IO failure occurspublic List<HRegionLocation> locateRegions(TableName tableName, boolean useCache, boolean offlined) throws IOException
ClusterConnectionlocateRegions in interface ClusterConnectiontableName - table to get regions ofuseCache - Should we use the cache to retrieve the region information.offlined - True if we are to include offlined regions, false and we'll leave out offlined
regions from returned list.IOException - if IO failure occurspublic HRegionLocation locateRegion(TableName tableName, byte[] row) throws IOException
ClusterConnectionlocateRegion in interface ClusterConnectiontableName - name of the table row is inrow - row key you're trying to find the region ofIOException - if a remote or network exception occurspublic HRegionLocation relocateRegion(TableName tableName, byte[] row) throws IOException
ClusterConnectionrelocateRegion in interface ClusterConnectiontableName - name of the table row is inrow - row key you're trying to find the region ofIOException - if a remote or network exception occurspublic RegionLocations relocateRegion(TableName tableName, byte[] row, int replicaId) throws IOException
ClusterConnectionrelocateRegion in interface ClusterConnectiontableName - name of the table row is inrow - row key you're trying to find the region ofreplicaId - the replicaId of the regionIOException - if a remote or network exception occurspublic RegionLocations locateRegion(TableName tableName, byte[] row, boolean useCache, boolean retry) throws IOException
ClusterConnectionlocateRegion in interface ClusterConnectiontableName - table to get regions ofrow - the rowuseCache - Should we use the cache to retrieve the region information.retry - do we retryIOException - if IO failure occurspublic RegionLocations locateRegion(TableName tableName, byte[] row, boolean useCache, boolean retry, int replicaId) throws IOException
ClusterConnectionlocateRegion in interface ClusterConnectiontableName - table to get regions ofrow - the rowuseCache - Should we use the cache to retrieve the region information.retry - do we retryreplicaId - the replicaId for the regionIOException - if IO failure occurspublic void cacheLocation(TableName tableName, RegionLocations location)
cacheLocation in interface ClusterConnectiontableName - The table name.location - the new locationpublic void clearRegionCache(TableName tableName, byte[] row)
public void clearCaches(ServerName serverName)
ClusterConnectionsn.clearCaches in interface ClusterConnectionserverName - A server namepublic void clearRegionLocationCache()
ConnectionRegionLocator.clearRegionLocationCache().
This may cause performance issue so use it with caution.clearRegionLocationCache in interface Connectionpublic void clearRegionCache(TableName tableName)
ClusterConnectiontableNameclearRegionCache in interface ClusterConnectiontableName - Name of the table whose regions we are to remove from cache.public org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface getAdminForMaster() throws IOException
ClusterConnectiongetAdminForMaster in interface ClusterConnectionIOExceptionpublic org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface getAdmin(ServerName serverName) throws IOException
ClusterConnectiongetAdmin in interface ClusterConnectionserverName - the region server to connect toIOException - if a remote or network exception occurspublic org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.BlockingInterface getClient(ServerName serverName) throws IOException
ClusterConnectiongetClient in interface ClusterConnectionserverName - the region server to connect toIOException - if a remote or network exception occurspublic org.apache.hadoop.hbase.client.MasterKeepAliveConnection getMaster() throws IOException
ClusterConnectionMasterKeepAliveConnection to the active mastergetMaster in interface ClusterConnectionIOExceptionpublic void deleteCachedRegionLocation(HRegionLocation location)
ClusterConnectiondeleteCachedRegionLocation in interface ClusterConnectionlocation - The location object for the region, to be purged from cache.public void updateCachedLocations(TableName tableName, byte[] regionName, byte[] rowkey, Object exception, ServerName source)
updateCachedLocations in interface ClusterConnectionexception - an object (to simplify user code) on which we will try to find a nested or
wrapped or both RegionMovedExceptionsource - server that is the source of the location update.tableName - the table nameregionName - the region namerowkey - the rowpublic org.apache.hadoop.hbase.client.AsyncProcess getAsyncProcess()
ClusterConnectiongetAsyncProcess in interface ClusterConnectionpublic ServerStatisticTracker getStatisticsTracker()
ClusterConnectiongetStatisticsTracker in interface ClusterConnectionpublic ClientBackoffPolicy getBackoffPolicy()
ClusterConnectiongetBackoffPolicy in interface ClusterConnectionpublic void abort(String msg, Throwable t)
Abortablepublic boolean isClosed()
ConnectionisClosed in interface Connectionpublic boolean isAborted()
Abortablepublic void close()
close in interface Closeableclose in interface AutoCloseableclose in interface Connectionprotected void finalize()
throws Throwable
public NonceGenerator getNonceGenerator()
ClusterConnectiongetNonceGenerator in interface ClusterConnectionpublic TableState getTableState(TableName tableName) throws IOException
ClusterConnectiongetTableState in interface ClusterConnectiontableName - table state forIOExceptionpublic RpcRetryingCallerFactory getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration conf)
ClusterConnectionConfiguration. This
RpcRetryingCallerFactory lets the users create RpcRetryingCallers which can be
intercepted with the configured RetryingCallerInterceptorgetNewRpcRetryingCallerFactory in interface ClusterConnectionconf - configuration npublic boolean hasCellBlockSupport()
ClusterConnectionCodec and so
supports cell blocks.hasCellBlockSupport in interface ClusterConnectionpublic ConnectionConfiguration getConnectionConfiguration()
ClusterConnectiongetConnectionConfiguration in interface ClusterConnectionpublic RpcRetryingCallerFactory getRpcRetryingCallerFactory()
ClusterConnectiongetRpcRetryingCallerFactory in interface ClusterConnectionpublic RpcControllerFactory getRpcControllerFactory()
ClusterConnectiongetRpcControllerFactory in interface ClusterConnectionpublic String getClusterId()
ConnectiongetClusterId in interface ConnectionCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.