MapReduce: Simplified Data Processing on Large Clusters

Ähnliche Dokumente
MapReduce in der Praxis

SEMT. Prof. G. Bengel. Searching as a Service (Programming Model: MapReduce)

MapReduce. Jens Dörre. Universität Passau Projekt MAPREDUCEFOUNDATION. Funktionale Programmierung

Data Mining und Machine Learning

Neue Ansätze der Softwarequalitätssicherung

Einführung in Hadoop

MapReduce mit Hadoop

Generalisierung von großen Datenbeständen am Beispiel der Gebäudegeneralisierung mit CHANGE

Universität Karlsruhe (TH)

High Performance Embedded Processors

MapReduce. Vereinfachte Datenverarbeitung in großen Rechnerverbünden. Igor Marijanovic Fachvortrag WAR

Inhaltsverzeichnis. BüroWARE Systemanforderungen ab Version Generelle Anforderungen SoftENGINE BüroWARE SQL / Pervasive. 2

Googles Map-Reduce-Technik

Verteilte Systeme. Map Reduce. Secure Identity Research Group

Hadoop. High Performance Batches in der Cloud. Hadoop. Folie Januar 2011

Systemanforderungen ab Version 5.31

!! Waldemar Reger Köln,

Big Data. Prof. Robert Jäschke Forschungszentrum L3S Leibniz Universität Hannover

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2.

Hadoop. Simon Prewo. Simon Prewo

MapReduce. Vereinfachte Datenverarbeitung in großen Rechnerverbünden. Semesterarbeit. für den Kurs Wissenschaftliches Arbeiten im WS2012/13

MapReduce. Johann Volz. IPD Snelting, Lehrstuhl Programmierparadigmen

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400

MapReduce: Simplified Data Processing on Large Clusters

2. Map/Reduce Programming Model. Architektur von Datenbanksystemen II

Leistungsanalyse von Rechnersystemen

Betriebssysteme Vorstellung

Entwicklungstand der GUI

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

Endorsed SI Anwenderbericht: Einsatz von System Platform 2012 R2 in virtualisierten Umgebungen zur Prozessvisualisierung

Cloud Computing mit mathematischen Anwendungen

Maximalwerte für die Konfiguration VMware Infrastructure 3

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop

RMS-Tuning nach 4 Jahren

Zabbix Performance Tuning

Parallele Programmiermodelle

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

Hadoop aus IT-Operations Sicht Teil 1 Hadoop-Grundlagen

Festplatte klonen: Tutorial

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Prozessarchitektur einer Oracle-Instanz

Typo3 & QFQ. Carsten Rose, I-MATH, University of Zurich, 2017

Performance Verbesserung BIRT-BERICHTE

MapReduce. Dhyan Blum

BigTable Else

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Betriebssysteme KU - Einführungstutorium


Die Marvel, ein gedrosselter Supercomputer

Systemanforderungen Manufacturing Execution System fabmes

Patagonia - Ein Mehrbenutzer-Cluster für Forschung und Lehre

Systemvoraussetzungen Einplatzanlage

MapReduce-Konzept. Thomas Findling, Thomas König

UBELIX University of Bern Linux Cluster

RavenDB, schnell und skalierbar

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

Performance (und Probleme?) Oracle 10g mit ASM und SAN

Neues in Hyper-V Version 2

Intern: Ceph Kurzeinführung in die verteile Storage-Lösung

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Freispeicherverwaltung Martin Wahl,

Mehrprozessorarchitekturen

wiko Bausoftware GmbH

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Freispeicherverwaltung

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Konzepte von Betriebssystemkomponenten

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Linux booten. Jörg Ahrens

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Bibliotheks-basierte Virtualisierung

GridMate The Grid Matlab Extension

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Storage-Zugriffsoptimierung mit QFS für TanDEM-X im DLR

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Large-scale Incremental Processing Using Distributed Transactions and Notifications

elpromonitor Software - Systemvoraussetzungen

VMware. Rainer Sennwitz.

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

XEN Performance. Projektpraktikum Informatik. Arne Klein Arne Klein () XEN Performance / 25

Foliensatz. Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

Einblick in die VMware Infrastruktur

Einfu hrende Betrachtung des USB und Mo glichkeiten der Integration in das Rainbow-Betriebssystem. Georg Gottleuber 23. Juni 2010 Verteilte Systeme

MapReduce. Vereinfachte Datenverarbeitung in großen Rechnerverbünden. Semesterarbeit. für den Kurs Wissenschaftliches Arbeiten im WS2012/13

Google's BigTable: Ein verteiltes Speichersystem für strukturierte Daten. von Florian Eiteljörge

BIG UNIVERSITÄTSRECHENZENTRUM

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Verteilte Systeme - Java Networking (Sockets) -

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Funktionen in JavaScript

Performance Tuning

Version Handbuch RAMSyncDrive V 1.0

Mehrwegbäume Motivation

DOAG Konferenz 2007 in Nürnberg

Linux Paging, Caching und Swapping

Spark, Impala und Hadoop in der Kreditrisikoberechnung

Erkennung von bösartigen Netzwerkverbindungen mittels Verhaltensgraphenanalyse

Transkript:

MapReduce: Simplified Data Processing on Large Clusters Hardware-Software-Co-Design Universität Erlangen-Nürnberg Tobias.Schwarzer@e-technik.stud.uni-erlangen.de Michael.Theil@mathe.stud.uni-erlangen.de 1

Übersicht Motivation Programmiermodell Implementierung Erweiterungen Performance Schlussfolgerung 2

Motivation Rechenbeispiel (Stand 2004): 20 Mrd. Webseiten x 20 KB 400TB Lesegeschwindigkeit eines Rechners von einer Festplatte 30-35 MB/s => 4 Monate, um Web zu lesen 1000 Festplatten, um das Web zu speichern Bearbeitung der Daten benötigt zusätzliche Ressourcen Wie lässt sich das schneller machen? Verteiltes System: gleiche Datenmenge mit 1000 Rechnern in weniger als 3 Stunden 3

Motivation ABER: Viel Programmierarbeit in verteilten Systemen: Kommunikation und Koordination Wiederherstellung nach Ausfall eines Rechners Statusdaten zur Systemüberwachung Fehlersuche, Debugging Optimierung der Anwendung Programmierarbeit muss für jede Anwendung wiederholt werden Lösungsansatz zur Reduzierung des Programmieraufwands: MapReduce 4

Übersicht Motivation Programmiermodell Implementierung Erweiterungen Performance Schlussfolgerung 5

Programmiermodell to be or not to be Input Map-Funktion Reduce-Funktion Tuning-Parameter setzen MapReduce-Aufruf Parallelisierung Fehlerbehandlung Aufteilung der Daten Lastverteilung Benutzer MapReduce Library be, 2 not, 1 or, 1 to, 2 Output 6

Map Function document, to be or not to be map() to, 1 be, 1 or, 1 not, 1 to, 1 be, 1 map(string key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, 1 ); 7

Intermediate Pairs to, 1 be, 1 or, 1 not, 1 to, 1 be, 1 Intermediate Pairs Key= be Values= 1, 1 Key= not Values= 1 Key= or Values= 1 Key= to Values= 1, 1 8

Reduce Function Key= be Values= 1, 1 Key= not Values= 1 Key= or Values= 1 Key= to Values= 1, 1 reduce() reduce() reduce() reduce() 2 1 1 2 be, 2 not, 1 or, 1 to, 2 reduce(string key, Iterator values): // key: a word // values: a list of counts for each v in values: result += ParseInt(v); Emit(AsString(result)); 9

Übersicht Motivation Programmiermodell Implementierung Erweiterungen Performance Schlussfolgerung 10

Implementierung Implementierung sollte an Entwicklungsumgebung angepasst sein: Small Shared-Memory Machine Großes NUMA Multiprozessorsystem Verteiltes System hier: Entwicklungsumgebung von Google Mehrere Cluster aus hunderten bzw. tausenden Rechnern Aufteilung des Speichers auf lokale Festplatten der Rechner Scheduling System, das Arbeitsaufträge auf Rechner verteilt 11

Execution Overview (1) Aufteilung der Eingabedaten Erzeugung von Kopien des Benutzerprogramms: Master Worker 12

Execution Overview (2) Master vergibt Map- bzw. Reduce-Tasks an freie Worker 13

Execution Overview (3) Worker liest den Inhalt aus den ihm zugewiesenen Input- Splits Worker teilt den Input in die Key/Value Paare auf und gibt diese an die Map-Funktion Intermediate-Pairs werden erzeugt und im Speicher gepuffert 14

Execution Overview (4) Gepufferte Wertepaare werden periodisch auf die lokale Festplatte geschrieben Adressen der Daten werden an den Master übertragen 15

Execution Overview (5) Master übermittelt Worker Speicherbereiche Worker liest die Intermediate Daten aus dem lokalen Speicher und sortiert sie nach dem Key 16

Execution Overview (6) Worker iteriert über die Intermediate Daten und gibt die Keys und deren zugehörige Values an die Reduce-Funktion weiter Reduce-Funktion fügt ihre Ausgabe der Output-Datei hinzu 17

Fehlertoleranz Worker: Worker wird als failed markiert, falls Antwort auf Ping-Anfrage des Masters ausbleibt Folgen für Tasks auf dem Worker: - Alle laufenden Tasks werden zurückgesetzt - Fertiggestellte Map-Tasks müssen erneut ausgeführt werden, da Zugriff auf lokalen Speicher des Workers nicht mehr möglich ist - Fertiggestellte Reduce-Tasks müssen nicht erneut ausgeführt werden (Globaler Output) Master: Periodisches Sichern der Master-Data-Structures: - Zustand der Tasks: idle, in-progress oder completed - Worker-ID - Adresse der Intermediate Daten Bei Ausfall: Kopie vom Master wird mit zuletzt gesichertem Status erzeugt 18

Locality und Backup-Tasks Locality Aufteilung der Input-Daten in 64 MB Blöcke Kopien eines jeden Blocks werden auf unterschiedlichen Rechnern gespeichert Master versucht Map-Tasks auf einem dieser Rechner auszuführen Verringerung der Netzwerklast Backup-Tasks straggler : Rechner, der ungewöhnlich lange Zeit benötigt, um einen der letzten Reduce-Tasks fertig zu stellen Verbesserung durch Backup-Tasks: kurz vor Fertigstellung der MapReduce-Operation startet Master Backup-Tasks für übrige in-progress Tasks Reduzierung der Ausführungszeit von MapReduce 19

Übersicht Motivation Programmiermodell Implementierung Erweiterungen Performance Schlussfolgerung 20

Partitioning Function Anwender legt die Anzahl an Reduce-Tasks bzw. Output Files (R) fest Daten werden dieser Anzahl entsprechend mittels einer Partitioning Function aufgeteilt Standard: hash(key) mod R (ausgewogene Partitionen) Partitioning Function kann vom Benutzer je nach Anwendung beschrieben werden R=2 0 1 21

Combiner Function Zusammenfassen mehrfacher Daten auf dem gleichen Rechner durch Combiner Function Key= be Values= 1, 1 Key= not Values= 1 Vermeidung von Wiederholungen in Intermediate keys Minimierung der Netzwerklast combine() Key= be Values= 2 reduce() Gleicher Code für Combiner und Reduce Function reduce() 2 1 22

Andere Erweiterungen Skipping Bad Records Bugs im Anwendercode können zum Absturz der Map oder Reduce Function zu einem deterministischen Zeitpunkt führen MapReduce Operation wird nicht abgeschlossen Optionaler Modus, in dem diese Records entdeckt und verworfen werden Input and Output Types Hinzufügen von selbst definierten In- und Output-Types mit Hilfe eines reader Interface Local Execution Alternative Implementierung: Sequentielle Ausführung von MapReduce auf lokalem Rechner Jedes Debugging oder Testing Tool einsetzbar 23

Übersicht Motivation Programmiermodell Implementierung Erweiterungen Performance Schlussfolgerung 24

Performance - Test (2004) Aufgabe: Sortierung von 10 10 100-Byte Records ( 1 TB) Cluster Konfiguration 1800 Rechner mit 2 GHZ Intel Xeon Prozessoren mit Hyper- Threading 4GB Arbeitsspeicher, davon 1-1,5 GB für andere Tasks reserviert 160GB IDE Festplatten 100-200 Gbit/s Netzwerk 25

Performance Schritte 1-3 1 2 3 26

Normale Ausführung 1. Lesen des Inputs durch Map-Worker: Lesen hauptsächlich von lokaler Festplatte Leserate sehr hoch (Spitzenrate: 13 GB/s) 2. Senderate von Map-Tasks zu Reduce-Tasks (Shuffle): Begrenzung auf 1700 Reduce-Tasks zur selben Zeit Aufteilung in 2 Teile 1.Teil beginnt, sobald 1. Map-Task fertig 2.Teil beginnt, sobald 1. Reduce-Task fertig 890 3. Schreibrate der Daten zum Output: Delay zwischen Shuffle und Schreiben aufgrund der Sortierung der Daten Fertigstellung bei 890s 27

Ohne Backup-Tasks Ohne Backup-Tasks: ähnlich der normalen Ausführung Nach 960s: alle bis auf 5 Reduce- Tasks beendet Fertigstellung nach 1283s (44% länger) 890 1283 28

Tasks killed Tasks killed: 200 von 1746 Workerprozessen gekilled Auswirkung: negative Inputrate, da fertig gestellte Arbeit neu ausgeführt werden muss Fertigstellung nach 933s (5% länger) 890 933 29

Übersicht Motivation Programmiermodell Implementierung Erweiterungen Performance Schlussfolgerung 30

Schlussfolgerung Gründe für MapReduce: Programmiermodell einfach zu verwenden auch für Programmierer ohne Erfahrung mit Parallelen und Verteilten Systemen Vielzahl an Problemstellung mit MapReduce lösbar - Sortieren von Daten - Google Projekte (z.b. Indexing System bei der Websuche) - Data Mining oder Maschinelles Lernen Implementierung von MapReduce für viele unterschiedliche Entwicklungsumgebungen möglich Master als Bottleneck 31

Vielen Dank für eure Aufmerksamkeit! 32

Referenzen [1] Dean, Jeffrey/Ghemawat, Sanjay. MapReduce: Simplied Data Processing on Large Clusters. OSDI 2004. San Francisco: USENIX Association, 2004. 137-150. [2] Kleber, Michael. The MapReduce Paradigm. Google, Inc., 2008. http://sites.google.com/site/mriap2008/intro_to_mapreduce.pdf 33

Andere Erweiterungen (2) Status Information Auf dem Master läuft ein interner HTTP Server, der Status Pages ausgibt Status Pages zeigen den Fortschritt der Berechnung Vorhersagen über Restdauer und Geschwindigkeit möglich Counters User definiert Counter Objekte und inkrementiert diese bei bestimmten Ereignissen in Map und/oder der Reduce Function Worker gibt Counter periodisch an Master weiter Ordering Guarantees Abarbeitung der Intermediate Pairs erfolgt aufsteigend nach dem Key (Sortierung) Side-effects Hilfsdateien als zusätzliche Ausgaben von Map- und Reduce- Operatoren 34