[
https://issues.apache.org/jira/browse/YARN-1007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13727821#comment-13727821
]
Zhijie Shen commented on YARN-1007:
-----------------------------------
+1 for
{code}
Collection<ContainerHistoryData> getContainers(ApplicationAttemptId
appAttemptId);
{code}
If the storage is black box,
{code}
Collection<ContainerHistoryData> getContainers(ApplicationId appId)
{code}
may be not necessary, but can be derived from
{code}
Collection<ContainerHistoryData> containers = ArrayList<ContainerHistoryData>();
for (ApplicationAttemptHistoryData appAttempt : getApplicationAttempts(appId)) {
containers.addAll(getContainers(appAttempt.getApplicationAttemptId());
}
return containers;
{code}
However, if it the underlying I/O operations can be optimized for direct
getContainers(ApplicationId appId), it will be a different story. Anyway,
currently we'd better focus on making the end-to-end system available, and
leave the performance issues to do later. Thoughts?
> [YARN-321] Enhance History Reader interface for Containers
> ----------------------------------------------------------
>
> Key: YARN-1007
> URL: https://issues.apache.org/jira/browse/YARN-1007
> Project: Hadoop YARN
> Issue Type: Sub-task
> Affects Versions: YARN-321
> Reporter: Devaraj K
> Assignee: Mayank Bansal
>
> If we want to show the containers used by application/app attempt, We need to
> have two more API's which returns collection of ContainerHistoryData for
> application id and applcation attempt id something like below.
> {code:xml}
> Collection<ContainerHistoryData> getContainers(
> ApplicationAttemptId appAttemptId);
> Collection<ContainerHistoryData> getContainers(ApplicationId appId);
> {code}
> {code:xml}
> /**
> * This method returns {@link Container} for specified {@link ContainerId}.
> *
> * @param {@link ContainerId}
> * @return {@link Container} for ContainerId
> */
> ContainerHistoryData getAMContainer(ContainerId containerId);
> {code}
> In the above API, we need to change the argument to application attempt id or
> we can remove this API because every attempt history data has master
> container id field, using master container id, history data can get using
> this below API if it takes argument as container id.
> {code:xml}
> /**
> * This method returns {@link ContainerHistoryData} for specified
> * {@link ApplicationAttemptId}.
> *
> * @param {@link ApplicationAttemptId}
> * @return {@link ContainerHistoryData} for ApplicationAttemptId
> */
> ContainerHistoryData getContainer(ApplicationAttemptId appAttemptId);
> {code}
> Here application attempt can use numbers of containers but we cannot choose
> which container history data to return. This API argument also need to be
> changed to take container id instead of app attempt id.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira