MapReduce och Spark är två mycket populära cluster computing ramverk med öppen källkod för storskalig dataanalys. Dessa ramar döljer komplexiteten i uppgiften parallellism och feltolerans, genom att exponera en enkel programmering API för användare. I detta dokument utvärderar vi de viktigaste arkitektoniska komponenterna i MapReduce och Spark ramverk inklusive: shuffle, utförande modell, och caching, med hjälp av en uppsättning av viktiga analytiska arbetsbelastningar. För att genomföra en detaljerad analys utvecklade vi två profileringsverktyg: (1) Vi korrelerar verksamhetsplan med resursutnyttjandet för både MapReduce och Spark, och presenterar visuellt denna korrelation; (2) Vi ger en uppdelning av uppgiften utförande tid för fördjupad analys. Genom detaljerade experiment kvantifierar vi prestandaskillnaderna mellan MapReduce och Spark. Dessutom tillskriver vi dessa prestandaskillnader olika komponenter som är olika utformade i de två ramverken. Vi exponerar vidare källan till dessa prestandaskillnader genom att använda en uppsättning mikrobenchmark experiment. Sammantaget visar våra experiment att Spark är ca 2,5x, 5x och 5x snabbare än MapReduce, för Word Count, k-means, och PageRank, respektive. De viktigaste orsakerna till dessa speedups är effektiviteten i den hash-baserade aggregeringskomponenten för att kombinera, samt minskade CPU och disk overheads på grund av RDD caching i Spark. Ett undantag från detta är Sortera arbetsbelastning, för vilken MapReduce är 2x snabbare än Spark. Vi visar att MapReduces utförandemodell är effektivare för att blanda data än Spark, vilket gör att Sort kör snabbare på MapReduce.
I REF Hadoop (v.2.4.0) och Spark (v.1.3.0) jämförs de viktigaste arkitektoniska komponenterna grundligt med hjälp av en uppsättning analytiska arbetsbelastningar.
Clash of the Titans: MapReduce vs. Spark for Large Scale Data Analytics
{'venue': 'PVLDB', 'journal': 'PVLDB', 'mag_field_of_study': ['Computer Science']}