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
- is related to
-
HADOOP-5271 JobConf option for minimum progress threshold before reducers are assigned
- Resolved
- relates to
-
YARN-1963 Support priorities across applications within the same queue
- Resolved