[ 
https://issues.apache.org/jira/browse/YARN-1631?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sunil G updated YARN-1631:
--------------------------

    Attachment: Yarn-1631.1.patch

As per Leafqueue assignContainers(), application will be fetched from 
activeApplications.
In this scenario, Application1 is fetched first when Node Update of Node_2 came.

So below check in assignContainers failed 
          // Check queue max-capacity limit
          if (!assignToQueue(clusterResource, required)) {
            return NULL_ASSIGNMENT;
          }
Here the queue limit was crossing the limit. But as per the return statement, 
the loop never tried for the second application.
Application2 has only 2GB demand to launch. And this could have launched in 
Node_2.

So instead of return NULL_ASSIGNMENT, it is better to break from the inner 
loop. 
some user limit check also breaking from inner loop.

Kindly check this patch and please share your thoughts.

> Container allocation issue in Leafqueue assignContainers()
> ----------------------------------------------------------
>
>                 Key: YARN-1631
>                 URL: https://issues.apache.org/jira/browse/YARN-1631
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: scheduler
>    Affects Versions: 2.2.0
>         Environment: SuSe 11 Linux 
>            Reporter: Sunil G
>         Attachments: Yarn-1631.1.patch
>
>
> Application1 has a demand of 8GB[Map Task Size as 8GB] which is more than 
> Node_1 can handle.
> Node_1 has a size of 8GB and 2GB is used by Application1's AM.
> Hence reservation happened for remaining 6GB in Node_1 by Application1.
> A new job is submitted with 2GB AM size and 2GB task size with only 2 Maps to 
> run.
> Node_2 also has 8GB capability.
> But Application2's AM cannot be launched in Node_2. And Application2 waits 
> longer as only 2 Nodes are available in cluster.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to