Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-7872

labeled node cannot be used to satisfy locality specified request

    XMLWordPrintableJSON

Details

    Description

      Issue summary:

      labeled node (i.e. node with 'not empty' node label) cannot be used to satisfy locality specified request (i.e. container request with 'not ANY' resource name and the relax locality is false).

       

      For example:

      The node with available resource:

      [Resource: [MemoryMB: [100] CpuNumber: [12]] NodeLabel: [persistent] HostName: {SRG} RackName: {/default-rack}]

      The container request:
      [Priority: [1] Resource: [MemoryMB: [1] CpuNumber: [1]] NodeLabel: [null] HostNames: {SRG} RackNames: {} RelaxLocality: [false]]

      Current RM capacity scheduler's behavior is that (at least for version 2.7 and 2.8), the node cannot allocate container for the request, because the node label is not matched when the leaf queue assign container.

       

      Possible solution:

      However, node locality and node label should be two orthogonal dimensions to select candidate nodes for container request. And the node label matching should only be executed for container request with ANY resource name, since only this kind of container request is allowed to have 'not empty' node label.

      So, for container request with 'not ANY' resource name (so, we clearly know it should not have node label), we should use the requested resource name to match with the node instead of using the requested node label to match with the node. And this resource name matching should be safe, since the node whose node label is not accessible for the queue will not be sent to the leaf queue.

       

      Discussion:

      Attachment is the fix according to this principle, please help to review.

      Without it, we cannot use locality to request container within these labeled nodes.

      If the fix is acceptable, we should also recheck whether the same issue happens in trunk and other hadoop versions.

      If not acceptable (i.e. the current behavior is by designed), so, how can we use locality to request container within these labeled nodes?

      Attachments

        Activity

          People

            yqwang Yuqi Wang
            yqwang Yuqi Wang
            Votes:
            1 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated: