Class ObserverReadProxyProvider<T>
java.lang.Object
org.apache.hadoop.hdfs.server.namenode.ha.AbstractNNFailoverProxyProvider<T>
org.apache.hadoop.hdfs.server.namenode.ha.ObserverReadProxyProvider<T>
- All Implemented Interfaces:
Closeable,AutoCloseable,org.apache.hadoop.io.retry.FailoverProxyProvider<T>
- Direct Known Subclasses:
ObserverReadProxyProviderWithIPFailover
@Private
@Evolving
public class ObserverReadProxyProvider<T>
extends AbstractNNFailoverProxyProvider<T>
A
FailoverProxyProvider implementation
that supports reading from observer namenode(s).
This constructs a wrapper proxy that sends the request to observer
namenode(s), if observer read is enabled. In case there are multiple
observer namenodes, it will try them one by one in case the RPC failed. It
will fail back to the active namenode after it has exhausted all the
observer namenodes.
Read and write requests will still be sent to active NN if reading from
observer is turned off.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.hdfs.server.namenode.ha.AbstractNNFailoverProxyProvider
AbstractNNFailoverProxyProvider.NNProxyInfo<T>Nested classes/interfaces inherited from interface org.apache.hadoop.io.retry.FailoverProxyProvider
org.apache.hadoop.io.retry.FailoverProxyProvider.ProxyInfo<T extends Object> -
Field Summary
Fields inherited from class org.apache.hadoop.hdfs.server.namenode.ha.AbstractNNFailoverProxyProvider
conf, factory, fallbackToSimpleAuth, ugi, xface -
Constructor Summary
ConstructorsConstructorDescriptionObserverReadProxyProvider(org.apache.hadoop.conf.Configuration conf, URI uri, Class<T> xface, HAProxyFactory<T> factory) By default ObserverReadProxyProvider usesConfiguredFailoverProxyProviderfor failover.ObserverReadProxyProvider(org.apache.hadoop.conf.Configuration conf, URI uri, Class<T> xface, HAProxyFactory<T> factory, AbstractNNFailoverProxyProvider<T> failoverProxy) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()org.apache.hadoop.ipc.AlignmentContextorg.apache.hadoop.io.retry.FailoverProxyProvider.ProxyInfo<T>getProxy()voidperformFailover(T currentProxy) booleanInquire whether logical HA URI is used for the implementation.Methods inherited from class org.apache.hadoop.hdfs.server.namenode.ha.AbstractNNFailoverProxyProvider
createProxyIfNeeded, getFallbackToSimpleAuth, getInterface, getProxyAddresses, getRandomOrder, setFallbackToSimpleAuth
-
Constructor Details
-
ObserverReadProxyProvider
public ObserverReadProxyProvider(org.apache.hadoop.conf.Configuration conf, URI uri, Class<T> xface, HAProxyFactory<T> factory) By default ObserverReadProxyProvider usesConfiguredFailoverProxyProviderfor failover. -
ObserverReadProxyProvider
public ObserverReadProxyProvider(org.apache.hadoop.conf.Configuration conf, URI uri, Class<T> xface, HAProxyFactory<T> factory, AbstractNNFailoverProxyProvider<T> failoverProxy)
-
-
Method Details
-
getAlignmentContext
public org.apache.hadoop.ipc.AlignmentContext getAlignmentContext() -
getProxy
-
performFailover
-
close
- Throws:
IOException
-
useLogicalURI
public boolean useLogicalURI()Description copied from class:AbstractNNFailoverProxyProviderInquire whether logical HA URI is used for the implementation. If it is used, a special token handling may be needed to make sure a token acquired from a node in the HA pair can be used against the other node.- Specified by:
useLogicalURIin classAbstractNNFailoverProxyProvider<T>- Returns:
- true if logical HA URI is used. false, if not used.
-