[
https://issues.apache.org/jira/browse/YARN-4606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16422631#comment-16422631
]
Eric Payne commented on YARN-4606:
----------------------------------
{quote}AM container is being allocated to App2 only after App1 completion when
cluster is running full.
{quote}
[[email protected]], In the current implementation (that is, without the
patch), there are a couple of things that can affect whether or not App2 will
be given the freed container:
- In the running queue, if {{Configured Minimum User Limit Percent}} is set to
100%, only one user can run in the queue at a time. If this is so, then the
Capacity Scheduler will only assign new containers to App1 (owned by User1).
However, if {{Configured Minimum User Limit Percent}} is 50% or less, the
Capacity Scheduler will assign new containers to App2 (owned by User2) until
they both have 50% of the queue or one stops asking for new resources.
- In the running queue, if {{Used Application Master Resources}} equals {{Max
Application Master Resources}}, the Capacity Scheduler will not assign an AM to
App2.
- The same thing happens if {{Num Schedulable Applications}} is equal to {{Max
Applications}}, but that's probably not the case here.
I suspect it may be the first case. Please check to make sure your queue
configuration is set to allow multiple running users in the queue.
{quote}{quote}However, I'm not sure of the best way to get the values for a
queue's Used AM Resources and Max AM Resources from this context. Those may be
capacity scheduler-specific values.
{quote}
Yes. But I do see some equivalents available in FSQueueMetrics.
{quote}
The concern is that even though they may be in both FSQueueMetrics, and
CSQueueMetrics, they are not accessible at the abstract {{QueueMetrics}} layer
because they have different accessors. It should be possible to add a new,
abstract accessor in {{QueueMetrics}} that is implemented in FS/CS QueueMetrics.
> CapacityScheduler: applications could get starved because computation of
> #activeUsers considers pending apps
> -------------------------------------------------------------------------------------------------------------
>
> Key: YARN-4606
> URL: https://issues.apache.org/jira/browse/YARN-4606
> Project: Hadoop YARN
> Issue Type: Bug
> Components: capacity scheduler, capacityscheduler
> Affects Versions: 2.8.0, 2.7.1
> Reporter: Karam Singh
> Assignee: Wangda Tan
> Priority: Critical
> Attachments: YARN-4606.1.poc.patch, YARN-4606.POC.patch
>
>
> Currently, if all applications belong to same user in LeafQueue are pending
> (caused by max-am-percent, etc.), ActiveUsersManager still considers the user
> is an active user. This could lead to starvation of active applications, for
> example:
> - App1(belongs to user1)/app2(belongs to user2) are active, app3(belongs to
> user3)/app4(belongs to user4) are pending
> - ActiveUsersManager returns #active-users=4
> - However, there're only two users (user1/user2) are able to allocate new
> resources. So computed user-limit-resource could be lower than expected.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]