Future Generation Computer Systems 43–44 (2015) 51–60
Contents lists available at ScienceDirect
Future Generation Computer Systems
journal homepage: www.elsevier.com/locate/fgcs
A self-adaptive scheduling algorithm for reduce start time
Zhuo Tang
a,∗
, Lingang Jiang
a
, Junqing Zhou
a
, Kenli Li
a
, Keqin Li
a,b
a
College of Information Science and Engineering, Hunan University, Changsha 410082, China
b
Department of Computer Science, State University of New York, New Paltz, NY 12561, USA
h i g h l i g h t s
• This paper illustrates the reasons of the system slots waster for reduces tasks waiting around.
• The model can determine the start time of reduce tasks, dynamically according to job context.
• As an optimal scheduling algorithm, SARS can decrease the reduce completion time for jobs.
a r t i c l e i n f o
Article history:
Received 28 December 2013
Received in revised form
1 August 2014
Accepted 15 August 2014
Available online 25 August 2014
Keywords:
Big data
Hadoop
MapReduce
Reduce
Self-adaptive
Task scheduling
a b s t r a c t
MapReduce is by far one of the most successful realizations of large-scale data-intensive cloud computing
platforms. When to start the reduce tasks is one of the key problems to advance the MapReduce
performance. The existing implementations may result in a block of reduce tasks. When the output of map
tasks become large, the performance of a MapReduce scheduling algorithm will be influenced seriously.
Through analysis for the current MapReduce scheduling mechanism, this paper illustrates the reasons of
system slot resources waste, which results in the reduce tasks waiting around, and proposes an optimal
reduce scheduling policy called SARS (Self Adaptive Reduce Scheduling) for reduce tasks’ start times in
the Hadoop platform. It can decide the start time point of each reduce task dynamically according to
each job context, including the task completion time and the size of map output. Through estimating job
completion time, reduce completion time, and system average response time, the experimental results
illustrate that, when comparing with other algorithms, the reduce completion time is decreased sharply.
It is also proved that the average response time is decreased by 11% to 29%, when the SARS algorithm is
applied to the traditional job scheduling algorithms FIFO, FairScheduler, and CapacityScheduler.
© 2014 Elsevier B.V. All rights reserved.
1. Introduction
MapReduce is an excellent model for distributed computing,
introduced by Google in 2004 [1]. It has emerged as an impor-
tant and widely used programming model for distributed and
parallel computing, due to its ease of use, generality, and scalabil-
ity. Among its open source implementation versions, Hadoop has
been widely used in industry around the whole world [2] and has
been used/extended by scientists as the base of their own research
work [3]. It has been applied to the production environments, such
as Google, Yahoo, Amazon, Facebook, and so on. Because of the
short development time, Hadoop can be improved in many aspects,
such as intermediate data management and reduce tasks schedul-
ing [4]. This paper mainly focuses on the reduce scheduling prob-
lem, which refers to the starting times of the reduce tasks.
∗
Corresponding author. Tel.: +86 18627568501.
E-mail address: ztang@hnu.edu.cn (Z. Tang).
Map and Reduce are the two sections in a MapReduce schedul-
ing algorithm. In Hadoop, each task contains three functioning
phases: copy, sort, and reduce [5]. The goal of the copy phase is
to read the map tasks’ outputs. The sort phase is to sort the inter-
mediate data which are produced by map tasks and will be the in-
put to the reduce phase. Finally, the eventual results are produced
through the reduce phase, where the copy and sort phases are to
preprocess the input data of reduce. In real applications, copying
and sorting may consume considerable amount of time, especially
in the copy phase. In the theoretical model, the reduce functions
start only if all map tasks are finished [6]. However, in the Hadoop
implementation, all copy actions of reduce tasks will start when
the first map action is finished [7]. But in a slot duration, if there is
any map task still running, the copy actions will wait around. This
will lead to the waste of the reduce slot resources.
The existing MapReduce program frameworks often treat the
jobs as a whole process. However, the differences between the map
and reduce tasks are not considered. Since map and reduce task
execution times are not related, it is not accurate to compute the
http://dx.doi.org/10.1016/j.future.2014.08.011
0167-739X/© 2014 Elsevier B.V. All rights reserved.