@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 |
MASTER_STATE_CACHE_TIMEOUT_SEC |
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() |
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.
|
List<ServerName> |
getAllBootstrapNodes(ServerName regionServer)
Get the bootstrap node list of another region server.
|
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.
|
List<ServerName> |
getLiveRegionServers(Supplier<ServerName> masterAddrTracker,
int count)
Get live region servers from masters.
|
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, wait
clearRegionCache
getTable
public static final String RETRIES_BY_SERVER_KEY
public static final String MASTER_STATE_CACHE_TIMEOUT_SEC
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 Connection
tableName
- the name of the tableIOException
public TableBuilder getTableBuilder(TableName tableName, ExecutorService pool)
Connection
TableBuilder
for creating Table
.getTableBuilder
in interface Connection
tableName
- the name of the tablepool
- the thread pool to use for requests like batch and scanpublic BufferedMutator getBufferedMutator(BufferedMutatorParams params)
Connection
BufferedMutator
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 Connection
params
- 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 Connection
tableName
- the name of the tableBufferedMutator
for the supplied tableName.public RegionLocator getRegionLocator(TableName tableName) throws IOException
Connection
Closeable.close()
on the returned
RegionLocator instance. RegionLocator needs to be unmanagedgetRegionLocator
in interface Connection
tableName
- Name of the table who's region is to be examinedIOException
public Admin getAdmin() throws IOException
Connection
Admin.close()
on the returned Admin instance.getAdmin
in interface Connection
IOException
public Hbck getHbck() throws IOException
Connection
Closeable.close()
on the returned Hbck instance. getHbck
in interface Connection
IOException
public Hbck getHbck(ServerName masterServer) throws IOException
Connection
Closeable.close()
on the returned Hbck instance. getHbck
in interface Connection
masterServer
- explicit ServerName
for master serverIOException
public MetricsConnection getConnectionMetrics()
ClusterConnection
getConnectionMetrics
in interface ClusterConnection
public User getUser()
ClusterConnection
User
associated with this connection. May be null
.getUser
in interface ClusterConnection
public ConnectionRegistry getConnectionRegistry()
ClusterConnection
ConnectionRegistry
used to orient this cluster.getConnectionRegistry
in interface ClusterConnection
protected ExecutorService getCurrentMetaLookupPool()
protected ExecutorService getCurrentBatchPool()
public String toString()
protected void retrieveClusterId()
public org.apache.hadoop.conf.Configuration getConfiguration()
Connection
getConfiguration
in interface Connection
@Deprecated public boolean isMasterRunning() throws MasterNotRunningException, ZooKeeperConnectionException
isMasterRunning
in interface ClusterConnection
MasterNotRunningException
- - if the master is not runningZooKeeperConnectionException
public HRegionLocation getRegionLocation(TableName tableName, byte[] row, boolean reload) throws IOException
ClusterConnection
getRegionLocation
in interface ClusterConnection
tableName
- 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
ClusterConnection
isTableEnabled
in interface ClusterConnection
tableName
- table nameIOException
- if a remote or network exception occurspublic boolean isTableDisabled(TableName tableName) throws IOException
ClusterConnection
isTableDisabled
in interface ClusterConnection
tableName
- table nameIOException
- if a remote or network exception occurspublic boolean isTableAvailable(TableName tableName, @Nullable byte[][] splitKeys) throws IOException
ClusterConnection
isTableAvailable
in interface ClusterConnection
IOException
public HRegionLocation locateRegion(byte[] regionName) throws IOException
ClusterConnection
locateRegion
in interface ClusterConnection
regionName
- name of the region to locateIOException
- if a remote or network exception occurspublic List<HRegionLocation> locateRegions(TableName tableName) throws IOException
ClusterConnection
locateRegions
in interface ClusterConnection
tableName
- table to get regions ofIOException
- if IO failure occurspublic List<HRegionLocation> locateRegions(TableName tableName, boolean useCache, boolean offlined) throws IOException
ClusterConnection
locateRegions
in interface ClusterConnection
tableName
- 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
ClusterConnection
locateRegion
in interface ClusterConnection
tableName
- 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
ClusterConnection
relocateRegion
in interface ClusterConnection
tableName
- 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
ClusterConnection
relocateRegion
in interface ClusterConnection
tableName
- 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
ClusterConnection
locateRegion
in interface ClusterConnection
tableName
- 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
ClusterConnection
locateRegion
in interface ClusterConnection
tableName
- 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 ClusterConnection
tableName
- The table name.location
- the new locationpublic void clearRegionCache(TableName tableName, byte[] row)
public void clearCaches(ServerName serverName)
ClusterConnection
sn
.clearCaches
in interface ClusterConnection
serverName
- A server namepublic void clearRegionLocationCache()
Connection
RegionLocator.clearRegionLocationCache()
.
This may cause performance issue so use it with caution.clearRegionLocationCache
in interface Connection
public void clearRegionCache(TableName tableName)
ClusterConnection
tableName
clearRegionCache
in interface ClusterConnection
tableName
- 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
ClusterConnection
getAdminForMaster
in interface ClusterConnection
IOException
public org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface getAdmin(ServerName serverName) throws IOException
ClusterConnection
getAdmin
in interface ClusterConnection
serverName
- 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
ClusterConnection
getClient
in interface ClusterConnection
serverName
- the region server to connect toIOException
- if a remote or network exception occurspublic org.apache.hadoop.hbase.client.MasterKeepAliveConnection getMaster() throws IOException
ClusterConnection
MasterKeepAliveConnection
to the active mastergetMaster
in interface ClusterConnection
IOException
public void updateCachedLocations(TableName tableName, byte[] regionName, byte[] rowkey, Object exception, ServerName source)
updateCachedLocations
in interface ClusterConnection
exception
- 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()
ClusterConnection
getAsyncProcess
in interface ClusterConnection
public ServerStatisticTracker getStatisticsTracker()
ClusterConnection
getStatisticsTracker
in interface ClusterConnection
public ClientBackoffPolicy getBackoffPolicy()
ClusterConnection
getBackoffPolicy
in interface ClusterConnection
public void abort(String msg, Throwable t)
Abortable
public boolean isClosed()
Connection
isClosed
in interface Connection
public boolean isAborted()
Abortable
public void close()
close
in interface Closeable
close
in interface AutoCloseable
close
in interface Connection
protected void finalize() throws Throwable
public NonceGenerator getNonceGenerator()
ClusterConnection
getNonceGenerator
in interface ClusterConnection
public TableState getTableState(TableName tableName) throws IOException
ClusterConnection
getTableState
in interface ClusterConnection
tableName
- table state forIOException
public RpcRetryingCallerFactory getNewRpcRetryingCallerFactory(org.apache.hadoop.conf.Configuration conf)
ClusterConnection
Configuration
. This
RpcRetryingCallerFactory lets the users create RpcRetryingCaller
s which can be
intercepted with the configured RetryingCallerInterceptor
getNewRpcRetryingCallerFactory
in interface ClusterConnection
conf
- configurationpublic boolean hasCellBlockSupport()
ClusterConnection
Codec
and so
supports cell blocks.hasCellBlockSupport
in interface ClusterConnection
public ConnectionConfiguration getConnectionConfiguration()
ClusterConnection
getConnectionConfiguration
in interface ClusterConnection
public RpcRetryingCallerFactory getRpcRetryingCallerFactory()
ClusterConnection
getRpcRetryingCallerFactory
in interface ClusterConnection
public RpcControllerFactory getRpcControllerFactory()
ClusterConnection
getRpcControllerFactory
in interface ClusterConnection
public List<ServerName> getLiveRegionServers(Supplier<ServerName> masterAddrTracker, int count) throws IOException
ClusterConnection
getLiveRegionServers
in interface ClusterConnection
IOException
public List<ServerName> getAllBootstrapNodes(ServerName regionServer) throws IOException
ClusterConnection
getAllBootstrapNodes
in interface ClusterConnection
IOException
public String getClusterId()
Connection
getClusterId
in interface Connection
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.