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

Steve Loughran commented on YARN-4757:
--------------------------------------

I am supportive of this; we always had a goal of supporting DNS (somehow); our 
naming policy was designed for that.


A troublespot is going to be that user names, even/especially kerberos names, 
may not be valid for DNS. AD accounts often have spaces in; i18n names exist, 
then there is punctuation. In YARN-913 I did try using punycode, but that only 
converts high-ASCII, high-unicode chars down —it does nothing for spaces in a 
name.

We can control the other bits, but not that.

Related to that, the parse guidelines on p8 shouldn't have a mixedcase example 
"aUser", as that my be misconstrued as case being relevant.

p12; architecture good, just bear in mind that the DNS service will need to 
handle ZK node failure/failover, so be able to switch to a new ZK node and 
(presumably) rebuild its state from that one. Similarly, implementation will 
need to handle the startup state 'zk server not yet live'.

I think you may need to add a sequence diagram for that; essentially re-enum 
the tree with records updated to match the new state as appropriate

h3. implementation (p22). 

* I think you may want to use one of the guava caches for doing some caching 
here, it could make a big diff to ZK load in some  scenarios. Example: 
bootstrapping an app across the cluster which looks up the HBase record.

* I just had a look at how Antonio Lain did the DNS binding in Smartfrog, where 
the Anubis HA T-Space was used as a P2P equivalent to ZK: 
https://sourceforge.net/p/smartfrog/svn/HEAD/tree/trunk/core/components/dns/src/org/smartfrog/services/dns/
 . He used dnsjava, though also added the option to actually bring up BIND: 
https://sourceforge.net/p/smartfrog/svn/HEAD/tree/trunk/core/components/dns/src/org/smartfrog/services/dns/DNSBindNamedImpl.java

I'd go with dnsjava.

Note I also wrote a prototype REST server for the registry; that's hidden in 
slider but it could be copied over to {{yarn-registry}}; it helped find some 
JSON/jackson marshalling problems with field naming already. The Java registry 
API was all built on the option of going RESTy later, and it would be nice for 
going through Knox for remote access.

Allan: consul gets a mention in the docs. Essentially, the YARN service 
registry works as the repo, all that's needed is to serve this up as a 
different protocol through 1+ node. Because of the ZK option, code which works 
directly with ZK can work with the data without worrying about DNS, DNS caching 
and server failures.


> [Umbrella] Simplified discovery of services via DNS mechanisms
> --------------------------------------------------------------
>
>                 Key: YARN-4757
>                 URL: https://issues.apache.org/jira/browse/YARN-4757
>             Project: Hadoop YARN
>          Issue Type: New Feature
>            Reporter: Vinod Kumar Vavilapalli
>            Assignee: Jonathan Maron
>         Attachments: 
> 0001-YARN-4757-Initial-code-submission-for-DNS-Service.patch, YARN-4757- 
> Simplified discovery of services via DNS mechanisms.pdf
>
>
> [See overview doc at YARN-4692, copying the sub-section (3.2.10.2) to track 
> all related efforts.]
> In addition to completing the present story of service­-registry (YARN-913), 
> we also need to simplify the access to the registry entries. The existing 
> read mechanisms of the YARN Service Registry are currently limited to a 
> registry specific (java) API and a REST interface. In practice, this makes it 
> very difficult for wiring up existing clients and services. For e.g, dynamic 
> configuration of dependent end­points of a service is not easy to implement 
> using the present registry­-read mechanisms, *without* code-changes to 
> existing services.
> A good solution to this is to expose the registry information through a more 
> generic and widely used discovery mechanism: DNS. Service Discovery via DNS 
> uses the well-­known DNS interfaces to browse the network for services. 
> YARN-913 in fact talked about such a DNS based mechanism but left it as a 
> future task. (Task) Having the registry information exposed via DNS 
> simplifies the life of services.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to