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

Terence Yim commented on TWILL-252:
-----------------------------------

Do you expect the application to fail to launch due to unable to acquire 
container of the desired size? It can be a static check before the application 
is submitted to YARN.

> Not providing any feedback when size of the container requested can't be 
> allocated
> ----------------------------------------------------------------------------------
>
>                 Key: TWILL-252
>                 URL: https://issues.apache.org/jira/browse/TWILL-252
>             Project: Apache Twill
>          Issue Type: Bug
>            Reporter: Yuliya Feldman
>
> Looks like when YARN is configured with max memory per container 
> (yarn.scheduler.maximum-allocation-mb) less then amount of memory end user 
> allocates for their application and container is allocated with just 
> yarn.scheduler.maximum-allocation-mb value there is no way to know about it 
> until container is allocated.
> We try to divide memory into heap and off-heap and end up with setting up off 
> heap to the value higher then allocated for the container, as application 
> assumes it gets what it asked for or container is not allocated at all.
> Need either ability to fail application in this case or not allocate 
> container with memory less then asked.
> As currently Twill adjusts memory and cpu with only INFO level messages in 
> AppMaster log:
> from Hadoop21YarnAMClient.java
> {code:java}
>  protected Resource adjustCapability(Resource resource) {
>     int cores = resource.getVirtualCores();
>     int updatedCores = Math.min(resource.getVirtualCores(), 
> maxCapability.getVirtualCores());
>     if (cores != updatedCores) {
>       resource.setVirtualCores(updatedCores);
>       LOG.info("Adjust virtual cores requirement from {} to {}.", cores, 
> updatedCores);
>     }
>     int updatedMemory = Math.min(resource.getMemory(), 
> maxCapability.getMemory());
>     if (resource.getMemory() != updatedMemory) {
>       resource.setMemory(updatedMemory);
>       LOG.info("Adjust memory requirement from {} to {} MB.", 
> resource.getMemory(), updatedMemory);
>     }
>     return resource;
>   }
> {code}



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

Reply via email to