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>
  • Field Details

    • LOG

      protected static final org.slf4j.Logger LOG
    • conf

      protected org.apache.hadoop.conf.Configuration conf
    • xface

      protected Class<T> xface
    • factory

      protected HAProxyFactory<T> factory
    • ugi

      protected org.apache.hadoop.security.UserGroupInformation ugi
    • fallbackToSimpleAuth

      protected AtomicBoolean 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

      public void setFallbackToSimpleAuth(AtomicBoolean fallbackToSimpleAuth)
      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

      public AtomicBoolean getFallbackToSimpleAuth()
    • getInterface

      public Class<T> getInterface()
      Specified by:
      getInterface in interface org.apache.hadoop.io.retry.FailoverProxyProvider<T>
    • createProxyIfNeeded

      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

      public static boolean getRandomOrder(org.apache.hadoop.conf.Configuration conf, URI nameNodeUri)
      Check whether random order is configured for failover proxy provider for the namenode/nameservice.
      Parameters:
      conf - Configuration
      nameNodeUri - The URI of namenode/nameservice
      Returns:
      random order configuration