Select the most suitable MapReduce implementation for large scale data analysis jobs based on the user skills, preferences, and requirements. MapReduce is a simple and powerful programming model that enables the easy development of scalable parallel applications to process vast amounts of data on large clusters of commodity machines. It isolates the application from the details of running a distributed program. But many programmers are unfamiliar with the MapReduce programming style and prefer to use a SQL-like language to perform their tasks. In this paper, read an overview of high-level languages and systems designed to tackle these problems and add declarative interfaces on top of the MapReduce framework.