MapReduce framework is the de facto in big data and its applications, in which the big data-set is split into small data chunks and the data chunks are replicated on different servers, three servers by default, among thousands of servers. The heterogeneous server structure of the system, where the pair task-server determines the task processing speed, makes the scheduling much harder than scheduling for systems with homogeneous servers. Throughput optimality of the system on one hand and delay optimality on the other hand creates a dilemma for assigning tasks to servers. Unless many research has been done on both heuristic and theoretical algorithms for scheduling for such a system with multi-level data locality, the optimal scheduling algorithm is still an open problem. The JSQ-MaxWeight and Balanced-Pandas algorithms are the states of the arts algorithms with theoretical guarantees on throughput and delay optimality for systems with two and three levels of data locality. However, the scheduling complexity of these two algorithms are way too much. Hence, we use the power of d choices algorithm combined with the Balanced-Pandas algorithm and the JSQ-MaxWeight algorithm, and compare the complexity of the simple algorithms and the power of d choices versions of them. We will further show that the Balanced-Pandas algorithm combined with the power of the d choices, Balanced-Pandas-Pod, not only performs better than simple Balanced-Pandas, but also is less sensitive to the parameter d than the combination of the JSQ-MaxWeight algorithm and the power of the d choices, JSQ-MaxWeight-Pod. In fact in our extensive simulation results, the Balanced-Pandas-Pod algorithm is performing better than the simple Balanced-Pandas algorithm in low and medium loads, where data centers are usually performing at, and performs almost the same as the Balanced-Pandas algorithm at high loads. The reason is that the combination of the two algorithms enhances the data locality of tasks and prioritize local and rack local service to remote service more than the Balanced-Pandas algorithm. Note that the load balancing complexity of Balanced-Pandas and JSQ-MaxWeight algorithms are O(M ), where M is the number of servers in the system which is in the order of thousands servers, whereas the complexity of Balanced-Pandas-Pod and JSQ-MaxWeight-Pod are O(1), that makes the central scheduler faster and saves energy. Moreover, as mentioned, our proposed Balanced-Pandas-Pod has better performance than the existing algorithms that makes it superior to the state-of-the-art algorithms.