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

Wangda Tan edited comment on YARN-4257 at 12/29/15 11:24 PM:
-------------------------------------------------------------

Thanks [~kasha]/[~rhaase], 0 resource makes sense to me if container is just a 
pack resources and could be delegated to other processes. (Llama or YARN-1488).

After YARN-1488, we can relax 0 resource limits for all schedulers. I agree 
that we can keep validateConf as-is, each scheduler keeps own criteria about 0 
resources. From my side, I still want CS checks 0 resource, since 0 mem 
container will be killed immediately and 0 vcore container doesn't sound 
correct in semantic (now we have to launch a process for each container, a 
process cannot use 0 vcores).

Agree?


was (Author: leftnoteasy):
Thanks [~kasha]/[~rhaase], 0 resource makes sense to me if container is just a 
pack resources and could be delegated to other processes. (Llama or YARN-1408).

After YARN-1408, we can relax 0 resource limits for all schedulers. I agree 
that we can keep validateConf as-is, each scheduler keeps own criteria about 0 
resources. From my side, I still want CS checks 0 resource, since 0 mem 
container will be killed immediately and 0 vcore container doesn't sound 
correct in semantic (now we have to launch a process for each container, a 
process cannot use 0 vcores).

Agree?

> Move scheduler validateConf method to AbstractYarnScheduler and make it 
> protected
> ---------------------------------------------------------------------------------
>
>                 Key: YARN-4257
>                 URL: https://issues.apache.org/jira/browse/YARN-4257
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: scheduler
>            Reporter: Swapnil Daingade
>            Assignee: Rich Haase
>              Labels: easyfix
>         Attachments: YARN-4257.patch
>
>
> Currently FairScheduler, CapacityScheduler and FifoScheduler each have a 
> method private void validateConf(Configuration conf).
> All three methods validate the minimum and maximum scheduler allocations for 
> cpu and memory (with minor difference). FairScheduler supports 0 as minimum 
> allocation for cpu and memory, while CapacityScheduler and FifoScheduler do 
> not. We can move this code to AbstractYarnScheduler (avoids code duplication) 
> and make it protected for individual schedulers to override.
> Why do we care about a minimum allocation of 0 for cpu and memory?
> We contribute to a project called Apache Myriad that run yarn on mesos. 
> Myriad supports a feature call fine grained scaling (fgs). In fgs, a NM is 
> launched with zero capacity (0 cpu and 0 mem). When a yarn container is to be 
> run on the NM, a mesos offer for that node is accepted and the NM capacity is 
> dynamically scaled up to match the accepted mesos offer. On completion of the 
> yarn container, resources are returned back to Mesos and the NM capacity is 
> scaled down back to zero (cpu & mem). 
> In ResourceTrackerService.registerNodeManager, yarn checks if the NM capacity 
> is at-least as much as yarn.scheduler.minimum-allocation-mb and 
> yarn.scheduler.minimum-allocation-vcores. These values can be set to 0 in 
> yarn-site.xml (so a zero capacity NM is possible). However, the validateConf 
> methods in CapacityScheduler and FifoScheduler do not allow for 0 values for 
> these properties (The FairScheduler one does allow for 0). This behaviour 
> should be consistent or at-least be override able.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to