Uploaded image for project: 'Hadoop Map/Reduce'
  1. Hadoop Map/Reduce
  2. MAPREDUCE-314

Avoid priority inversion that could result due to scheduling running jobs in an order sorted by priority

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • None
    • None

    Description

      • Consider a job, J1, with priority NORMAL that is running reduce tasks occupying all reduce slots and has running and pending map tasks.
      • At this point, suppose a job, J2, is submitted with priority HIGH or say its priority is changed to HIGH from NORMAL.
      • The schedulers typically will start scheduling tasks from job J2, as J1's running maps complete. The default scheduler in Hadoop does this, and with HADOOP-4471, so will the capacity scheduler.
      • However, as there are still pending maps in J1, the reduce tasks of J1 are all stuck and no reduce tasks of J2 can run.
      • So, all map tasks of J2 will complete, followed by completion of all map tasks of J1, and then reduce tasks from J1 will start getting freed for J2 to complete.

      This could result in jobs completing slowly. Also, if there are enough jobs of higher priority, they could result in low priority jobs being starved. At the same time more and more resources (such as intermediate disk space) will get consumed without jobs completing.

      This jira is to discuss and implement a solution for the above problem.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              yhemanth Hemanth Yamijala
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: