Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-12943 Consistent Reads from Standby Node
  3. HDFS-14017

ObserverReadProxyProviderWithIPFailover should work with HA configuration

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: HDFS-12943, 3.3.0
    • Component/s: None
    • Labels:
      None

      Description

      Currently ObserverReadProxyProviderWithIPFailover extends ObserverReadProxyProvider, and the only difference is changing the proxy factory to use IPFailoverProxyProvider. However this is not enough because when calling constructor of ObserverReadProxyProvider in super(...), the follow line:

      nameNodeProxies = getProxyAddresses(uri,
              HdfsClientConfigKeys.DFS_NAMENODE_RPC_ADDRESS_KEY);
      

      will try to resolve the all configured NN addresses to do configured failover. But in the case of IPFailover, this does not really apply.

       

      A second issue closely related is about delegation token. For example, in current IPFailover setup, say we have a virtual host nn.xyz.com, which points to either of two physical nodes nn1.xyz.com or nn2.xyz.com. In current HDFS, there is always only one DT being exchanged, which has hostname nn.xyz.com. Server only issues this DT, and client only knows the host nn.xyz.com, so all is good. But in Observer read, even with IPFailover, the client will no longer contacting nn.xyz.com, but will actively reaching to nn1.xyz.com and nn2.xyz.com. During this process, current code will look for DT associated with hostname nn1.xyz.com or nn2.xyz.com, which is different from the DT given by NN. causing Token authentication to fail. This happens in AbstractDelegationTokenSelector#selectToken. New IPFailover proxy provider will need to resolve this as well.

        Attachments

        1. HDFS-14017-HDFS-12943.014.patch
          6 kB
          Chen Liang
        2. HDFS-14017-HDFS-12943.013.patch
          6 kB
          Chen Liang
        3. HDFS-14017-HDFS-12943.012.patch
          9 kB
          Chen Liang
        4. HDFS-14017-HDFS-12943.011.patch
          10 kB
          Chen Liang
        5. HDFS-14017-HDFS-12943.010.patch
          10 kB
          Chen Liang
        6. HDFS-14017-HDFS-12943.009.patch
          9 kB
          Chen Liang
        7. HDFS-14017-HDFS-12943.008.patch
          9 kB
          Chen Liang
        8. HDFS-14017-HDFS-12943.006.patch
          7 kB
          Chen Liang
        9. HDFS-14017-HDFS-12943.005.patch
          8 kB
          Chen Liang
        10. HDFS-14017-HDFS-12943.004.patch
          8 kB
          Chen Liang
        11. HDFS-14017-HDFS-12943.003.patch
          10 kB
          Chen Liang
        12. HDFS-14017-HDFS-12943.002.patch
          11 kB
          Chen Liang
        13. HDFS-14017-HDFS-12943.001.patch
          2 kB
          Chen Liang

          Activity

            People

            • Assignee:
              vagarychen Chen Liang
              Reporter:
              vagarychen Chen Liang
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: