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

Wangda Tan commented on YARN-3409:
----------------------------------

Just read above comments from [~sunilg]/[~grey]/[[email protected]] 
regarding to resource v.s. label. 

To me, this discussion started since design phase of YARN-796 (3 years ago). 
Like [~grey] said, all the labels (including partition/constraints) are used 
for filtering, and what how much resource can be consumed after container 
allocated is determined by resource only. NM will not do any check for 
partition/attribute from coming containers, and AM will not send such 
partition/attribute to NM as part of ContainerLaunchContext as well.

As [~sunilg] mentioned, change of partition will not cause container killed by 
NM, instead, since it change resource accounting (from use 10G of partition-x 
to 10G of partition-y), so preemption could kick-in, but this is completely 
decided by RM.

bq. The big advantage I see is that we don't have two duplicate sets of code.
If we put two things into Resource, we have to define type of each resource 
vector (consumable/non-consumable/string-attribute/node-partition). Which could 
be very unclear and inefficient for RM to handle them as well. From what I can 
see, modern schedulers are mostly use separated concept of resource and 
attributes. And this cannot avoid having separate implementation to handle 
label/resource

> Add constraint node labels
> --------------------------
>
>                 Key: YARN-3409
>                 URL: https://issues.apache.org/jira/browse/YARN-3409
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: api, capacityscheduler, client
>            Reporter: Wangda Tan
>            Assignee: Naganarasimha G R
>         Attachments: Constraint-Node-Labels-Requirements-Design-doc_v1.pdf, 
> YARN-3409.WIP.001.patch
>
>
> Specify only one label for each node (IAW, partition a cluster) is a way to 
> determinate how resources of a special set of nodes could be shared by a 
> group of entities (like teams, departments, etc.). Partitions of a cluster 
> has following characteristics:
> - Cluster divided to several disjoint sub clusters.
> - ACL/priority can apply on partition (Only market team / marke team has 
> priority to use the partition).
> - Percentage of capacities can apply on partition (Market team has 40% 
> minimum capacity and Dev team has 60% of minimum capacity of the partition).
> Constraints are orthogonal to partition, they’re describing attributes of 
> node’s hardware/software just for affinity. Some example of constraints:
> - glibc version
> - JDK version
> - Type of CPU (x86_64/i686)
> - Type of OS (windows, linux, etc.)
> With this, application can be able to ask for resource has (glibc.version >= 
> 2.20 && JDK.version >= 8u20 && x86_64).



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to