[ https://issues.apache.org/jira/browse/HDFS-2839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13240500#comment-13240500 ]
Daryn Sharp commented on HDFS-2839: ----------------------------------- Comments. They'll reference and span both solution A & B to hopefully provide clarity. * NN has a logical name that is authority in URI (hdfs://logicalName/path) * (Requirement B.5) The non-HA NN’s DNS name is the logical name of NN. I think this may be your intent, so would you please clarify/confirm? The logical name (URI's authority) for the NN should always be, for both HA and non-HA, a DNS name with a primary mapping to the main NN. The logical name may be a CNAME (see below) in the case of HA. This will allow both HA and non-HA aware clients to access the cluster. The non-HA aware clients just won't failover. * The LogicalName is the DNS name that maps to a single IP which failsover * DNS-Resolver - DNS-Name to IP or IPs (single IP in case of IP-Failover) These two statements seem contradictory about whether the the logical name (URI authority) has a dns mapping to 1 or many hosts. I'm assuming that the "single IP" approach would rely on config settings for failover support? Here's how I would envision a dns configuration to support both HA and non-HA: * A record for logical name: nn.domain -> IP ** Non-HA client works as it does now. ** HA client has a single resolution so there's no failover. * CNAME for logical name: nn.domain -> nn1.domain & nn2.domain ** The non-HA client works as it does now. The CNAME is resolved to the primary address (nn1.domain). No code change required. ** The HA client can specifically query for all resolutions to build the failover list. In fact, the HA aware client could be "smart" and instantiate the HA RPC proxy only if the logical name has multiple resolutions. The HA aware client resolves the logical name with {{getAllByName}}, instead of {{getByName}}, to find the multiple mappings for HA. Regarding cross cluster access: * Cross cluster access must be supported * Cross cluster – The logical to IP mapping must be available across clusters * ConfigFile-resolver - the mapping in the config file - this config file will need to be be available in all clusters, for all clusters to allow cross cluster access. I'm uneasy about propagating the current model where clients require a lot of config info about remote clusters. It becomes a maintenance burden to keep them in sync, more so when some users have their configs. Favoring the dns/resolver approach should minimize the need to sync all cluster configs for HA. > HA: Remove need for client configuration of nameservice ID > ---------------------------------------------------------- > > Key: HDFS-2839 > URL: https://issues.apache.org/jira/browse/HDFS-2839 > Project: Hadoop HDFS > Issue Type: New Feature > Components: ha, hdfs client, name-node > Affects Versions: 0.24.0 > Reporter: Jitendra Nath Pandey > Assignee: Jitendra Nath Pandey > > The fully qualified path from an ha cluster, won't be usable from a different > cluster that doesn't know about that particular namespace id. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira