Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-5139 [Umbrella] Move YARN scheduler towards global scheduler
  3. YARN-10380

Import logic of multi-node allocation in CapacityScheduler

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      1) Entry point:
      When we do multi-node allocation, we're using the same logic of async scheduling:

      // Allocate containers of node [start, end)
       for (FiCaSchedulerNode node : nodes) {
        if (current++ >= start) {
           if (shouldSkipNodeSchedule(node, cs, printSkipedNodeLogging)) {
              continue;
           }
           cs.allocateContainersToNode(node.getNodeID(), false);
        }
       } 

      Is it the most effective way to do multi-node scheduling? Should we allocate based on partitions? In above logic, if we have thousands of node in one partition, we will repeatly access all nodes of the partition thousands of times.

      I would suggest looking at making entry-point for node-heartbeat, async-scheduling (single node), and async-scheduling (multi-node) to be different.

      Node-heartbeat and async-scheduling (single node) can be still similar and share most of the code. 

      async-scheduling (multi-node): should iterate partition first, using pseudo code like: 

      for (partition : all partitions) {
        allocateContainersOnMultiNodes(getCandidate(partition))
      } 

       

      Attachments

        Issue Links

          Activity

            People

              zhuqi Qi Zhu
              wangda Wangda Tan
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h 10m
                  2h 10m