## 1 Introduction  
Big data [1; 2; 3] are everywhere. They are high-veracity, high-velocity, high-value, and/or high-variety data with volumes beyond the ability of commonly-used software to manage, query, and process within a tolerable elapsed time. These high volumes of valuable data can be easily collected or generated at a high velocity from different data sources (which may lead to different data formats) in various real-life applications such as bioinformatics, graph management, sensor and stream systems, smart worlds, social networks, as well as the Web [4; 5; 6; 7; 8]. Characteristics of these big data can be described by the following \"5 Vs\":  
1. Veracity, which focuses on the quality of data (e.g., uncertainty, messiness, or trustworthiness of data);
2. Velocity, which focuses on the speed at which data are collected or generated;
3. Value, which focuses on the usefulness of data;
4. Variety, which focuses on differences in types, contents or formats of data; and
5. Volume, which focuses on the quantity of data. Embedded in the big data (e.g., biological data, medical images, streams of advertisements, surveillance videos, business transactions, financial charts, social media data, web logs, texts and documents) are rich sets of useful information and knowledge. Due to the \"5 Vs\" characteristics of big data, new forms of algorithm are needed for managing, querying, and processing these big data so as to enable enhanced decision making, insight, process optimization, data mining and knowledge discovery. This drives and motivates research and practices in data science, which aims to develop systematic or quantitative data analytic algorithm to analyze (e.g., inspect, clean, transform, and model) and mine big data. Big data analytics [9; 10; 11; 12] incorporates various techniques from a broad range of fields, which include cloud computing, data mining, machine learning, mathematics, and statistics. Data mining aims to extract implicit, previously unknown, and potentially useful information from data. With \"5 Vs\" characteristics of big data, it is natural to handle the data in a cloud computing environment as a cloud environment represents a \"natural\" context for big data by providing high performance, reliability, availability, transparency, abstraction, and/or virtualization. Various approaches--ranging from mathematical models to approximation models, from resource-constrained paradigms to memory-bounded methods--can be applied in cloud computing environments. Over the past few years, algorithms for handling big data according to a \"systematic\" view of the problem (e.g., MapReduce algorithms) are gaining momentum. MapReduce [13] is a high-level programming model for handling high volumes of big data by using parallel and distributed computing [14; 15; 16] on clouds [17; 18; 19], which consist of a master node and multiple worker nodes. As implied by its name, MapReduce involves two key functions: \"map\" and \"reduce\" functions commonly used in functional programming languages such as LISP for list processing:1. The mapper applies a mapping function to each value in the list of values and returns the resulting list;
2. The reducer applies a reducing function to combine all the values in the list of values and returns the combined result. An advantage of using the MapReduce model is that users only need to focus on (and specify) these \"map\" and \"reduce\" functions--without worrying about implementation details for the following:  
* handling machine failures,
* managing inter-machine communication,
* partitioning the input data, or
* scheduling and executing the program across multiple machines. Several algorithms have been proposed over the past few years to use the MapReduce model--which mines the search space with parallel, distributed, or cloud computing--for big data analytics tasks like classification [20] and clustering [21].