Rafal Wojdyla created HDFS-6648:
-----------------------------------

             Summary: Order of namenodes in ConfiguredFailoverProxyProvider is 
not defined by order in hdfs-site.xml
                 Key: HDFS-6648
                 URL: https://issues.apache.org/jira/browse/HDFS-6648
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: ha, hdfs-client
    Affects Versions: 2.2.0
            Reporter: Rafal Wojdyla


In org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider, 
in the constructor, there's a map <nameservice : < service-id : 
service-rpc-address > > (DFSUtil.getHaNnRpcAddresses). It's a LinkedHashMap of 
HashMaps. The order is kept for _nameservices_. Then to find active namenode, 
for nameservice, we get HashMap of <service-id : service-rpc-address > for 
requested nameservice (taken from URI request), And for this HashMap we get 
values - order of this collection is not strictly defined! In the code: 

{code}
Collection<InetSocketAddress> addressesOfNns = addressesInNN.values(); 
{code}

And then we put these values (in not defined order) into ArrayList of proxies, 
and then in getProxy we start from first proxy in the list and failover to next 
if needed. 

It would make sense for ConfiguredFailoverProxyProvider to keep order of 
proxies/namenodes defined in hdfs-site.xml.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to