Dynamic Configuration of Partitioning in Spark Applications
- 5 January 2017
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 28 (7) , 1891-1904
Abstract
Spark has become one of the main options for large-scale analytics running on top of shared-nothing clusters. This work aims to make a deep dive into the parallelism configuration and shed light on the behavior of parallel spark jobs. It is motivated by the fact that running a Spark application on all the available processors does not necessarily imply lower running time, while may entail waste of resources. We first propose analytical models for expressing the running time as a function of the number of machines employed. We then take another step, namely to present novel algorithms for configuring dynamic partitioning with a view to minimizing resource consumption without sacrificing running time beyond a user-defined limit. The problem we target is NP-hard. To tackle it, we propose a greedy approach after introducing the notions of dependency graphs and of the benefit from modifying the degree of partitioning at a stage; complementarily, we investigate a randomized approach. Our polynomial solutions are capable of judiciously use the resources that are potentially at user's disposal and strike interesting trade-offs between running time and resource consumption. Their efficiency is thoroughly investigated through experiments based on real execution data.Keywords
Funding Information
- Spanish Ministry of Economy and Competitivity (TIN2015-65316-P)
- SGR Programme (2014-SGR-1051)
- Catalan Government
This publication has 26 references indexed in Scilit:
- Automatic tuning of bag-of-tasks applications2015
- Practical algorithms for execution engine selection in data flowsFuture Generation Computer Systems, 2015
- Hadoop superlinear scalabilityCommunications of the ACM, 2015
- Partial Utility-Driven Scheduling for Flexible SLA and Pricing Arbitration in CloudsIEEE Transactions on Cloud Computing, 2014
- ACME: A scalable parallel system for extracting frequent patterns from a very long sequenceThe VLDB Journal, 2014
- Profiling and evaluating hardware choices for MapReduce environments: An application-aware approachPerformance Evaluation, 2014
- MRTunerProceedings of the VLDB Endowment, 2014
- Hadoop's adolescenceProceedings of the VLDB Endowment, 2013
- Adaptive workflow scheduling for dynamic grid and cloud computing environmentConcurrency and Computation: Practice and Experience, 2013
- StubbyProceedings of the VLDB Endowment, 2012