Class RegionServerCoprocessorHost.RegionServerEnvironment
- All Implemented Interfaces:
RegionServerCoprocessorEnvironment
,CoprocessorEnvironment<RegionServerCoprocessor>
- Direct Known Subclasses:
RegionServerCoprocessorHost.RegionServerEnvironmentForCoreCoprocessors
- Enclosing class:
- RegionServerCoprocessorHost
-
Field Summary
Fields inherited from class org.apache.hadoop.hbase.coprocessor.BaseEnvironment
impl, priority
-
Constructor Summary
ConstructorDescriptionRegionServerEnvironment
(RegionServerCoprocessor impl, int priority, int seq, org.apache.hadoop.conf.Configuration conf, RegionServerServices services) -
Method Summary
Modifier and TypeMethodDescriptioncreateConnection
(org.apache.hadoop.conf.Configuration conf) Creates a cluster connection using the passed Configuration.Returns the hosts' Connection to the Cluster.Returns a MetricRegistry that can be used to track metrics at the region server level.Returns Interface to Map of regions online on this RegionServerRegionServerCoprocessorEnvironment.getServerName()
}.Returns Hosting Server's ServerNamevoid
shutdown()
Clean up the environmentMethods inherited from class org.apache.hadoop.hbase.coprocessor.BaseEnvironment
getClassLoader, getConfiguration, getHBaseVersion, getInstance, getLoadSequence, getPriority, getVersion, startup
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.hadoop.hbase.CoprocessorEnvironment
getClassLoader, getConfiguration, getHBaseVersion, getInstance, getLoadSequence, getPriority, getVersion
-
Field Details
-
metricRegistry
-
services
-
-
Constructor Details
-
RegionServerEnvironment
public RegionServerEnvironment(RegionServerCoprocessor impl, int priority, int seq, org.apache.hadoop.conf.Configuration conf, RegionServerServices services)
-
-
Method Details
-
getOnlineRegions
Description copied from interface:RegionServerCoprocessorEnvironment
Returns Interface to Map of regions online on this RegionServerRegionServerCoprocessorEnvironment.getServerName()
}.- Specified by:
getOnlineRegions
in interfaceRegionServerCoprocessorEnvironment
-
getServerName
Description copied from interface:RegionServerCoprocessorEnvironment
Returns Hosting Server's ServerName- Specified by:
getServerName
in interfaceRegionServerCoprocessorEnvironment
-
getConnection
Description copied from interface:RegionServerCoprocessorEnvironment
Returns the hosts' Connection to the Cluster. Do not close! This is a shared connection with the hosting server. ThrowsUnsupportedOperationException
if you try to close or abort it. For light-weight usage only. Heavy-duty usage will pull down the hosting RegionServer responsiveness as well as that of other Coprocessors making use of this Connection. Use to create table on start or to do administrative operations. Coprocessors should create their own Connections if heavy usage to avoid impinging on hosting Server operation. To create a Connection or if a Coprocessor requires a region with a particular Configuration, useConnectionFactory
orRegionServerCoprocessorEnvironment.createConnection(Configuration)
}.Be aware that operations that make use of this Connection are executed as the RegionServer User, the hbase super user that started this server process. Exercise caution running operations as this User (See
RegionServerCoprocessorEnvironment.createConnection(Configuration)
} to run as other than the RegionServer User).Be careful RPC'ing from a Coprocessor context. RPC's will fail, stall, retry, and/or crawl because the remote side is not online, is struggling or it is on the other side of a network partition. Any use of Connection from inside a Coprocessor must be able to handle all such hiccups.
- Specified by:
getConnection
in interfaceRegionServerCoprocessorEnvironment
- Returns:
- The host's Connection to the Cluster.
- See Also:
-
createConnection
Description copied from interface:RegionServerCoprocessorEnvironment
Creates a cluster connection using the passed Configuration. Creating a Connection is a heavy-weight operation. The resultant Connection's cache of region locations will be empty. Therefore you should cache and reuse Connections rather than create a Connection on demand. Create on start of your Coprocessor. You will have to cast the CoprocessorEnvironment appropriately to get at this API at start time because Coprocessor start method is passed a subclass of this CoprocessorEnvironment or fetch Connection using a synchronized accessor initializing the Connection on first access. Close the returned Connection when done to free resources. Using this API rather thanConnectionFactory.createConnection(Configuration)
returns a Connection that will short-circuit RPC if the target is a local resource. Use ConnectionFactory if you don't need this ability.Be careful RPC'ing from a Coprocessor context. RPC's will fail, stall, retry, and/or crawl because the remote side is not online, is struggling or it is on the other side of a network partition. Any use of Connection from inside a Coprocessor must be able to handle all such hiccups.
- Specified by:
createConnection
in interfaceRegionServerCoprocessorEnvironment
- Returns:
- Connection created using the passed conf.
- Throws:
IOException
-
getMetricRegistryForRegionServer
Description copied from interface:RegionServerCoprocessorEnvironment
Returns a MetricRegistry that can be used to track metrics at the region server level.See ExampleMasterObserverWithMetrics class in the hbase-examples modules for examples of how metrics can be instantiated and used.
- Specified by:
getMetricRegistryForRegionServer
in interfaceRegionServerCoprocessorEnvironment
- Returns:
- A MetricRegistry for the coprocessor class to track and export metrics.
-
shutdown
Description copied from class:BaseEnvironment
Clean up the environment- Overrides:
shutdown
in classBaseEnvironment<RegionServerCoprocessor>
-