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

ASF GitHub Bot commented on FLINK-5791:
---------------------------------------

Github user shuai-xu commented on a diff in the pull request:

    https://github.com/apache/flink/pull/3304#discussion_r102907061
  
    --- Diff: 
flink-yarn/src/main/java/org/apache/flink/yarn/YarnResourceManager.java ---
    @@ -376,4 +388,23 @@ private int generatePriority(ResourceProfile 
resourceProfile) {
                }
        }
     
    +   /**
    +    * Get resource profile by given the container priority. It should 
always be got from the mapping
    +    * between resource profile and priority, otherwise it will throw the 
exception.
    +    *
    +    * @param priority The container priority used for distinguishing 
different resources.
    +    * @return The resource profile corresponding with the priority.
    +    * @throws Exception
    +    */
    +   private ResourceProfile getResourceProfile(int priority) throws 
Exception{
    +           if (resourcePriorities.containsValue(priority)) {
    +                   for (Map.Entry<ResourceProfile, Integer> entry : 
resourcePriorities.entrySet()) {
    +                           if (entry.getValue() == priority) {
    +                                   return entry.getKey();
    +                           }
    +                   }
    +           }
    --- End diff --
    
    This is a confusing part in yarn. Now the priority is only used to 
distinguish requests of different resource. It has nothing to do with 
importance. For slot request of different resources, we should generate 
different priorities for them, and put priority and resource profile to the 
resourcePriorities map. When yarn containers come back, we know they should 
start the task manager with which resource profile by query the map with the 
container priority. And when task manager offer slot with the resource profile 
to job master, we can exactly match the slot with the original request.


> Resource should be strictly matched when allocating for yarn
> ------------------------------------------------------------
>
>                 Key: FLINK-5791
>                 URL: https://issues.apache.org/jira/browse/FLINK-5791
>             Project: Flink
>          Issue Type: Improvement
>          Components: YARN
>            Reporter: shuai.xu
>            Assignee: shuai.xu
>              Labels: flip-6
>
> In flip6, for yarn mode, resource should be assigned as requested to avoid 
> resource wasting and OOM.
> 1. YarnResourceManager will request container according to ResourceProfile   
> in slot request form JM.
> 2. RM will pass the ResourceProfile to TM for initializing its slots.
> 3. RM should match the slots offered by TM with SlotRequest from JM strictly.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to