This document discusses scheduling algorithms for batches of MapReduce jobs in heterogeneous cloud environments with budget and deadline constraints. It proposes two optimization problems: 1) Given a fixed budget B, how to efficiently schedule tasks to minimize workflow completion time without exceeding the budget. 2) Given a fixed deadline D, how to efficiently schedule tasks to minimize monetary cost without missing the deadline. It presents an optimal dynamic programming algorithm for the first problem that runs in O(κB2) time, and two faster greedy algorithms. It also briefly discusses reducing the second problem to a knapsack problem. The goal is to help cloud service providers deploy MapReduce cost-effectively given user constraints.