[ 
https://issues.apache.org/jira/browse/HDFS-14017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16682588#comment-16682588
 ] 

Konstantin Shvachko edited comment on HDFS-14017 at 11/10/18 9:08 PM:
----------------------------------------------------------------------

I meant nameserviceID, rather than namespace. Here is an example:
{code:java}
dfs.nameservices = virtual-address-nn.g.li.com
dfs.ha.namenodes.virtual-address-nn.g.li.com = nn1, nn2
dfs.namenode.rpc-address.virtual-address-nn.g.li.com.nn1 = 
physical-address-ha1.g.li.com
dfs.namenode.rpc-address.virtual-address-nn.g.li.com.nn2 = 
physical-address-ha2.g.li.com
{code}
Here {{virtual-address-nn.g.li.com}} plays the role of the nameserviceID, which 
turns out to be the virtual address of NN. Does your patch works with that 
configuration? We should really unit test this.
So for ORPPwithIPF, the IPF will use {{virtual-address-nn.g.li.com}} as the 
NN's virtual address, while the ORPP part will work with the physical addresses 
{{physical-address-ha*.g.li.com}}.


was (Author: shv):
I meant nameserviceID, rather than namespace. Here is an example:
{code:java}
dfs.nameservices = virtual-address-nn.g.li.com
dfs.ha.namenodes.virtual-address-nn.g.li.com = nn1, nn2
dfs.namenode.rpc-address.virtual-address-nn.g.li.com.nn1 = 
physical-address-ha1.g.li.com
dfs.namenode.rpc-address.virtual-address-nn.g.li.com.nn2 = 
physical-address-ha2.g.li.com
{code}
Here {{virtual-address-nn.g.li.com}} plays the role of the nameserviceID, which 
turns out to be the virtual address of NN. Does your patch works with that 
configuration? We should really unit test this.

> ObserverReadProxyProviderWithIPFailover should work with HA configuration
> -------------------------------------------------------------------------
>
>                 Key: HDFS-14017
>                 URL: https://issues.apache.org/jira/browse/HDFS-14017
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Chen Liang
>            Assignee: Chen Liang
>            Priority: Major
>         Attachments: HDFS-14017-HDFS-12943.001.patch, 
> HDFS-14017-HDFS-12943.002.patch, HDFS-14017-HDFS-12943.003.patch, 
> HDFS-14017-HDFS-12943.004.patch, HDFS-14017-HDFS-12943.005.patch, 
> HDFS-14017-HDFS-12943.006.patch, HDFS-14017-HDFS-12943.008.patch
>
>
> 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:
> {code:java}
> nameNodeProxies = getProxyAddresses(uri,
>         HdfsClientConfigKeys.DFS_NAMENODE_RPC_ADDRESS_KEY);
> {code}
> 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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to