Class AbstractNNFailoverProxyProvider<T>
java.lang.Object
org.apache.hadoop.hdfs.server.namenode.ha.AbstractNNFailoverProxyProvider<T>
- All Implemented Interfaces:
Closeable,AutoCloseable,org.apache.hadoop.io.retry.FailoverProxyProvider<T>
- Direct Known Subclasses:
ConfiguredFailoverProxyProvider,IPFailoverProxyProvider,ObserverReadProxyProvider,RouterObserverReadProxyProvider,WrappedFailoverProxyProvider
public abstract class AbstractNNFailoverProxyProvider<T>
extends Object
implements org.apache.hadoop.io.retry.FailoverProxyProvider<T>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classProxyInfo to a NameNode.Nested classes/interfaces inherited from interface org.apache.hadoop.io.retry.FailoverProxyProvider
org.apache.hadoop.io.retry.FailoverProxyProvider.ProxyInfo<T extends Object> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.hadoop.conf.Configurationprotected HAProxyFactory<T>protected AtomicBooleanprotected static final org.slf4j.Loggerprotected org.apache.hadoop.security.UserGroupInformation -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotectedAbstractNNFailoverProxyProvider(org.apache.hadoop.conf.Configuration conf, URI uri, Class<T> xface, HAProxyFactory<T> factory) -
Method Summary
Modifier and TypeMethodDescriptionprotected AbstractNNFailoverProxyProvider.NNProxyInfo<T>Create a proxy if it has not been created yet.protected List<AbstractNNFailoverProxyProvider.NNProxyInfo<T>>getProxyAddresses(URI uri, String addressKey) Get list of configured NameNode proxy addresses.static booleangetRandomOrder(org.apache.hadoop.conf.Configuration conf, URI nameNodeUri) Check whether random order is configured for failover proxy provider for the namenode/nameservice.voidsetFallbackToSimpleAuth(AtomicBoolean fallbackToSimpleAuth) Set for tracking if a secure client falls back to simple auth.abstract booleanInquire whether logical HA URI is used for the implementation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.io.retry.FailoverProxyProvider
getProxy, performFailover
-
Field Details
-
LOG
protected static final org.slf4j.Logger LOG -
conf
protected org.apache.hadoop.conf.Configuration conf -
xface
-
factory
-
ugi
protected org.apache.hadoop.security.UserGroupInformation ugi -
fallbackToSimpleAuth
-
-
Constructor Details
-
AbstractNNFailoverProxyProvider
protected AbstractNNFailoverProxyProvider() -
AbstractNNFailoverProxyProvider
protected AbstractNNFailoverProxyProvider(org.apache.hadoop.conf.Configuration conf, URI uri, Class<T> xface, HAProxyFactory<T> factory)
-
-
Method Details
-
useLogicalURI
public abstract boolean useLogicalURI()Inquire 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.- Returns:
- true if logical HA URI is used. false, if not used.
-
setFallbackToSimpleAuth
Set for tracking if a secure client falls back to simple auth. This method is synchronized only to stifle a Findbugs warning.- Parameters:
fallbackToSimpleAuth- - set to true or false during this method to indicate if a secure client falls back to simple auth
-
getFallbackToSimpleAuth
-
getInterface
- Specified by:
getInterfacein interfaceorg.apache.hadoop.io.retry.FailoverProxyProvider<T>
-
createProxyIfNeeded
protected AbstractNNFailoverProxyProvider.NNProxyInfo<T> createProxyIfNeeded(AbstractNNFailoverProxyProvider.NNProxyInfo<T> pi) Create a proxy if it has not been created yet. -
getProxyAddresses
protected List<AbstractNNFailoverProxyProvider.NNProxyInfo<T>> getProxyAddresses(URI uri, String addressKey) Get list of configured NameNode proxy addresses. Randomize the list if requested. -
getRandomOrder
Check whether random order is configured for failover proxy provider for the namenode/nameservice.- Parameters:
conf- ConfigurationnameNodeUri- The URI of namenode/nameservice- Returns:
- random order configuration
-