[ 
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


Reply via email to