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.
  • Constructor Details

  • Method Details

    • getAlignmentContext

      public org.apache.hadoop.ipc.AlignmentContext getAlignmentContext()
    • getProxy

      public org.apache.hadoop.io.retry.FailoverProxyProvider.ProxyInfo<T> getProxy()
    • performFailover

      public void performFailover(T currentProxy)
    • close

      public void close() throws IOException
      Throws:
      IOException
    • useLogicalURI

      public boolean useLogicalURI()
      Description copied from class: AbstractNNFailoverProxyProvider
      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.
      Specified by:
      useLogicalURI in class AbstractNNFailoverProxyProvider<T>
      Returns:
      true if logical HA URI is used. false, if not used.