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

Eric Yang commented on YARN-7605:
---------------------------------

[~jianhe] {quote}
IIUC, the code is load if app is not running. This can be that app is pending 
or finished, it may still hit hdfs a lot. For getStatus kinda API, the consumer 
is always calling it in a loop. This will get very bad if hdfs is down or 
during failover, the api call will be spinning and quickly overload RM. IMO, we 
may need a better solution for serving persistent app status. The current 
approach may create a bottleneck accidentally.
{quote}

What api would you recommend to retrieve the status and spec combined object.  
The code used to create a new service object, and only set service name, status 
and time remaining.  There is a lot of missing information, which can confuse 
user.  This is the reason that I changed it to return the spec from HDFS.  If 
spec was stored in solr or hbase with memory caching, it will reduce the 
bottleneck.  However, those proposed ideas was not well received during the 
early implementation.  Therefore, there isn't many options here to make this 
more robust at this time.  I am open to suggestions.

{quote}
How is it retrieving it from AM ? Only RM knows the app's remaining time
{quote}

It appears that the application master stores the information to update the 
status of the service.  I am not sure how it was computed.  Remaining time is 
also updated.  One could argue that it may have delay in comparison to current 
time, if this is the case, I can put the code back.  However, I didn't find the 
remaining time to be not current when retrieved via AMproxy.  

> Implement doAs for Api Service REST API
> ---------------------------------------
>
>                 Key: YARN-7605
>                 URL: https://issues.apache.org/jira/browse/YARN-7605
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Eric Yang
>            Assignee: Eric Yang
>             Fix For: yarn-native-services
>
>         Attachments: YARN-7605.001.patch, YARN-7605.004.patch, 
> YARN-7605.005.patch, YARN-7605.006.patch, YARN-7605.007.patch, 
> YARN-7605.008.patch, YARN-7605.009.patch, YARN-7605.010.patch, 
> YARN-7605.011.patch, YARN-7605.012.patch, YARN-7605.013.patch, 
> YARN-7605.014.patch
>
>
> In YARN-7540, all client entry points for API service is centralized to use 
> REST API instead of having direct file system and resource manager rpc calls. 
>  This change helped to centralize yarn metadata to be owned by yarn user 
> instead of crawling through every user's home directory to find metadata.  
> The next step is to make sure "doAs" calls work properly for API Service.  
> The metadata is stored by YARN user, but the actual workload still need to be 
> performed as end users, hence API service must authenticate end user kerberos 
> credential, and perform doAs call when requesting containers via 
> ServiceClient.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to