A MapReduce cloud becomes a key to the success of cloud computing today. However, a MapReduce cloud uses a single Master node as the brain to manage tasks distributed over Slave nodes for controlling the entire progress of the application execution. Accordingly, a MapReduce cloud easily overloads the Master node with reports sent from Slave nodes at run time to harm performance. Besides, a MapReduce cloud makes the Master node a single failure point to suspend the application execution when the Master node cannot work. A MapReduce cloud can use the Distributed Control Framework (DCF) proposed in this paper to improve both performance and fault tolerance, because DCF shifts most works of a Master node to a DCF Master Agent coexisting in each Slave node and allows Slave nodes to join or leave a cloud at run time without interrupting the application execution. According to observations on experiments with various applications in this paper, a MapReduce cloud can use DCF to have better performance and fault tolerance in comparison to a native MapReduce cloud.