You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Rafal Wojdyla (JIRA)" <ji...@apache.org> on 2014/07/09 14:49:04 UTC
[jira] [Created] (HDFS-6648) Order of namenodes in
ConfiguredFailoverProxyProvider is not defined by order in hdfs-site.xml
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)