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

Robert Kanter commented on YARN-2423:
-------------------------------------

If we're concerned that this Java API would change, wouldn't we have the same 
problem with the REST API?  If we can make the REST API compatible, then the 
Java API would also be compatible and there's no problem; if we can't make the 
REST API compatible, then the Java API also wouldn't be compatible and we'd 
have a problem anyway.  

That said, based on the data model we've created for the new ATS vs what we 
have in the old ATS, I think making the APIs compatible is going to be very 
difficult.  For instance, we have the very specific entities like Flow, User, 
Queue, etc, and while we can maybe emulate those with the generic ones in the 
old ATS, it would get very messy and users would still have to update their 
code to deal with those.  The posting API would be even more problematic for 
3rd party AMs; there's a lot of information that will be missing if we somehow 
get that to work.  In the new ATS discussions, we keep saying how we should 
make it compatible with the old API, but I'm not sure how that's going to work.

IMHO, it would be better if we just kept the old ATS and the new ATS separate.  
When the new ATS is ready to ship, we'd recommend switching to the new one, but 
the old one would still work with the old API (I suppose we'd have to leave it 
around for a while, deprecated, before removing it).  

As it is now, anyone using the current ATS has to write their own REST client 
and deal with the json on their own; while not super-difficult, it does make 
using the ATS harder.  It would be easier for users who aren't planning on 
upgrading so quickly to a new Hadoop version with the new ATS, to have this 
Java API.

In any event, I think we should make a final decision on whether or not to add 
this Java API so we can stop this from being in limbo.  It's been basically 
done since October.

> TimelineClient should wrap all GET APIs to facilitate Java users
> ----------------------------------------------------------------
>
>                 Key: YARN-2423
>                 URL: https://issues.apache.org/jira/browse/YARN-2423
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Zhijie Shen
>            Assignee: Robert Kanter
>         Attachments: YARN-2423.004.patch, YARN-2423.005.patch, 
> YARN-2423.006.patch, YARN-2423.007.patch, YARN-2423.patch, YARN-2423.patch, 
> YARN-2423.patch
>
>
> TimelineClient provides the Java method to put timeline entities. It's also 
> good to wrap over all GET APIs (both entity and domain), and deserialize the 
> json response into Java POJO objects.



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

Reply via email to