1. A method for scheduling MapReduce jobs within and across multiple priority classes, wherein the method comprises: obtaining a preferred ordering for multiple MapReduce jobs within each of the multiple priority classes based on a given metric, wherein each of the multiple priority classes comprises two or more of the multiple MapReduce jobs, and wherein the given metric is selected from a plurality of metrics based on a job type of the multiple MapReduce jobs, wherein the plurality of metrics comprises (i) a metric associated with weighted response time, (ii) a metric associated with weighted number of tardy jobs, (iii) a metric associated with weighted tardiness, (iv) a metric associated with weighted lateness and (v) a metric associated with service level agreement cost; prioritizing the multiple priority classes subject to one or more dynamic minimum slot guarantees for each priority class to generate an ordering of the multiple priority classes; and iteratively employing a MapReduce scheduler, according to the ordering of the multiple priority classes, to allocate resources at the level of priority classes to execute all of the two or more MapReduce jobs within a first priority class from the ordering of the multiple priority classes prior to executing a MapReduce job in the subsequent priority class in the ordering of the multiple priority classes, wherein said executing the two or more MapReduce jobs within the first priority class comprises executing the two or more MapReduce jobs according to said preferred ordering for the MapReduce jobs within the first priority class.