MapReduce-‐Ansatz - Datenbanken

wwwdb.inf.tu.dresden.de

MapReduce-‐Ansatz - Datenbanken

Webscale Data Management

8 Map/Reduce

© Prof. Dr. -­‐Ing. Wolfgang Lehner


Web-­‐scale Data Management

Big Data

PBs of data, 10 2 -­‐10 5 nodes

Opera7onal

High qps, a few rows/op

e.g., BigTable, Dynamo, PNUTS

Analy7c

Low qps, billions of rows/op

(MapReduce, Hadoop, Dryad)

Interac7ve Scripted

(Dremel) (PigLaTn, Sawzall)

Virtualiza7on

(Scalability)

Mul7-­‐Tenancy

Map N logical systems into 1

physical system

[S. Melnik: The FronTers of Data Programmability, BTW 2009]

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 2


Agenda

! MOTIVATION

! DER MAPREDUCE-­‐ANSATZ

! Map-­‐ und Reduce-­‐OperaTonen

! Googles ImplemenTerungskonzept

! Fehlertoleranz

! Beispiele

! ImplemenTerungen

! HADOOP

! ANSÄTZE FÜR WEITERE SPRACHABSTRAKTIONEN

! Sawzall, Dryad, Pig, Dremel

! KRITIK AN MAPREDUCE

! Vergleich zwischen Mapreduce und DBMS

! HadoopDB

! AUSBLICK

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 3


Mo7va7on (1)

Problem: Petabytes an Daten, auf mehrere Computer verteilt, müssen

verarbeitet oder analysiert werden

§ Daten sind zu groß, um sie auf einer einzigen Maschine sequenziell zu bearbeiten

§ Beispiel: Wie oe kommen welche Wörter in Textdateien (z.B. Suchlogs) vor

§ Eigentliche FunkTonalität (Wörter zählen) trivial implemenTerbar

§ Aber wie verteilen

§ MapReduce

§ Programmiermodell, das bei der Parallelisierung datenintensiver Anwendungen

zum Einsatz kommt

§ Abstrahiert den Verteilungsvorgang (Parallelisierung, Verteilung von Daten,

Fehlertoleranz)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 4


Mo7va7on (2)

Vorteil

§ Entwickler von verteilten Anwendungen müssen nur das Framework benutzen, keine

Codeänderungen bei Änderung der Client-­‐Anzahl nöTg

§ Verwendung von handelsüblichen Rechnern möglich

§ Keine Notwendigkeit für spezielle High-­‐End Server

Anwendungsgebiete

§ Bildung verschiedener StaTsTken für Web-­‐Seiten

§ InverTerter Web-­‐Link Graph (welche Seiten zeigen auf eine besTmmte Seite)

§ Bildung von inverTerten Indizes (in welchen Dokumenten kommt ein besTmmtes

Wort vor)

§ Verteiltes SorTeren

§ Cluster-­‐Algorithmen

§ Verarbeitung von Satelliten-­‐Bildern

§ Sprachverarbeitung für automaTsche Übersetzung

§ Graphentheorie

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 5


MapReduce-­‐Ansatz

Ziel: Verstecke Komplexität der parallelen Programmierung, Datenverteilung,

Fehlertoleranz vor dem Entwickler

MapReduce-­‐Ansatz

§ Bietet dem Entwickler eine Schnimstelle

mit nur zwei OperaTonen an, die er

selbst definieren muss: Map und Reduce

§ Inspiriert von Map/Reduce aus

funkTonalen Sprachen

§ Zwei Schrime

§ Map: Generiert aus Eingabedaten eine

Sammlung von Zwischenergebnissen

§ Reduce: Generiert daraus aggregierte

Ergebnisse

Map

Fold

f f f f f

g g g g g

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 6


MapReduce-­‐Ansatz (2) – Map

Map erzeugt als Zwischenergebnis eine Sammlung von (Schlüssel, Wert)-­‐Paaren

Beispiel: Zähle Wörter in einem Dokument

§ TexTnhalt des Dokuments

map(dokumentName, wert){

for each word w in wert

emit(w, "1");

}

§ Emiqert für jedes Wort ein Paar,

welches das Wort und die

Häufigkeit 1 enthält. Für dasselbe

Wort, das mehr als einmal

vorkommt, werden mehrere Paare

erzeugt

§ Anmerkung: Die Eingabe (dokumentName, wert) ist auch ein Paar, jedoch haben

dessen Elemente einen anderen DefiniTonsbereich als die Elemente der emiqerten

Paare

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 7


MapReduce-­‐Ansatz (3) – Reduce

Reduce kombiniert Zwischenergebnisse

§ Beispiel (fortgesetzt)

reduce(wort, werte){

int ergebnis = 0;

for each w in werte

ergebnis += w;

emit(wort, ergebnis);

§ Liste mit Worthäufigkeiten: Entsteht

durch Aufsammeln und Gruppieren

mehrerer Paare, die dasselbe Wort als

Schlüssel haben (Shuffle)

§ Wird der Reduce-­‐OperaTon als Iterator

übergeben. Auf diese Weise sind große

Datenmengen handhabbar, die sonst

nicht vollständig in den Speicher passen

würden

} Summiere die Häufigkeiten aus der

Werteliste auf und emiqere das Ergebnis

§ Anmerkung: Elemente der Eingabe-­‐Paars haben denselben DefiniTonsbereich wie

die des Ausgabe-­‐Paars

§ Es kann mehrere Arbeiter geben, welche die RedukTonsoperaTon ausführen und

selbst wieder Zwischenergebnisse emiqeren

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 8


MapReduce-­‐Ansatz (4) – Implemen7erung

User

Program

(1) fork

(1) fork

Master

(1) fork

(2) assign map (2) assign reduce

worker

split 0

split 1

split 2

split 3

split 4

(3) read

worker

(4) local write

(5) remote read

worker

worker

(6) write

output

file 0

output

file 1

worker

Input

files

Map

phase

Intermediate files

(on local disk)

Reduce

phase

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 9


MapReduce-­‐Ansatz (5) – Implemen7erung

User

Program

split 0

split 1

split 2

split 3

split 4

(3) read

worker

worker

§ Für die parallele (1) submit Ausführung der Map-­‐

OperaTon werden zunächst die

Master

Eingabedaten in M disjunkte Par77onen

(2)("splits") schedule map zerlegt (2) schedule reduce

§ Etwa 16-­‐64 MB pro ParTTon

(kontrollierbar durch Parameter)

§ Können parallel auf verschiedenen (6) write

(4) local write

(5) remote read

worker

Rechnern bearbeitet werden

worker

output

file 0

output

file 1

worker

Input

files

Map

phase

Intermediate files

(on local disk)

Reduce

phase

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 10


MapReduce-­‐Ansatz (6) – Implemen7erung

User

Program

(1) fork

(1) fork

Master

(1) fork

(2) assign map (2) assign reduce

worker

split 0

split 1

split 2

split 3

split 4

Input

files

(3) read

Map

phase

(5) remote read

§ Danach: Starte Kopien des

(4) local write worker Programms auf Rechner im

Cluster (1)

§ Definiere eine Instanz als

worker Koordinator, den Rest als

Arbeiter

Intermediate files

(on local disk)

worker

worker

Reduce

phase

(6) write

output

file 0

output

file 1

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 11


MapReduce-­‐Ansatz (7) – Implemen7erung

User

Program

(1) fork

(1) fork

Master

(1) fork

(2) assign map (2) assign reduce

worker

split 0

split 1

(5) remote read

(3) read

§ split Koordinator 2 (Master) (4) local write worker weist laufenden

split 3

Arbeiter-­‐Instanzen Map-­‐ oder Reduce-­‐

Aufgabe zu (2) (beachtet

Lokalitätsgesichtspunkte)

worker

§ Es werden M Map-­‐Aufgaben und

§ R Reduce-­‐Aufgaben zugewiesen

split 4

Input

files

Map

phase

Intermediate files

(on local disk)

worker

worker

Reduce

phase

(6) write

output

file 0

output

file 1

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 12


MapReduce-­‐Ansatz (8) – Implemen7erung

split 0

split 1

split 2

split 3

split 4

Input

files

(3) read

worker

worker

worker

(1) fork

Map

phase

User

Program

Master

(1) fork

(2) assign map (2) assign reduce

(4) local write

Arbeiter mit Map-­‐Aufgabe

§ Liest Inhalte seiner zugewiesenen

ParTTon (3)

§ Bearbeitet alle Eingabepaare mit

seiner (1) fork Map-­‐FunkTon


§ Die Ergebnisse werden im

Hauptspeicher gepuffert

§ In periodischen Abständen werden

Puffer auf Festplame geschrieben (4)

(5) remote read

Intermediate files

(on local disk)

worker

Reduce

phase

(6) write

output

file 0

§ Anhand einer ParTTonierungs-­funkTon

in R Par77onen

unterteilt (z.B. hash(key) mod R)

output

worker

§ Der Ablageort der ParTTonen file 1

wird dem Koordinator

gemeldet, der für die Übergabe

an Reduce-­‐ Arbeiter

verantwortlich ist

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 13


MapReduce-­‐Ansatz (9) – Implemen7erung

Arbeiter mit Reduce-­‐Aufgabe

§ Wird vom Koordinator benachrich7gt

§ Bekommt Ablageort für Zwischen-­ergebnisse

(ParTTonen), die er von

den Festplamen der Worker (1) fork liest (5)

§ Shuffle: SorTerung der Paare nach

Schlüssel, so dass Paare mit gleichem

Schlüssel gruppiert werden

worker

§ Arbeiter iteriert darüber

split 0

§ Jeder split 1 Schlüssel wird samt der

(3) read

zugehörigen

split 2

Werte der

(4) local write

worker

split 3

RedukTonsoperaTon übergeben

split 4

§ Das Ergebnis der RedukTonsfunkTon

wird in einer Ausgabedatei

worker

angefügt,

die zur ParTTon assoziiert ist (6)

User

Program

Master

(1) fork

(2) assign map (2) assign reduce

(5) remote read

(1) fork

worker

worker

(6) write

output

file 0

output

file 1

Input

files

Map

phase

Intermediate files

(on local disk)

Reduce

phase

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 14


MapReduce-­‐Ansatz (10) – Implemen7erung

split 0

split 1

split 2

split 3

split 4

(3) read

worker

worker

worker

(1) fork

User

Program

Master

(1) fork

(2) assign map (2) assign reduce

(4) local write

§ Wenn alle Map-­‐ und Reduce-­‐Aufgaben

bearbeitet wurden, kehrt der Aufruf zum

Benutzer-­‐Programm zurück.

§ Die Ausgabe des MapReduce-­‐Programms

befindet sich in R Dateien (eine pro

(1) fork

RedukTons-­‐Aufgabe)

§ Können als Eingabe für weitere Map-­‐

Reduce-­‐Aufrufe verwendet werden

(5) remote read

worker

worker

(6) write

output

file 0

output

file 1

Input

files

Map

phase

Intermediate files

(on local disk)

Reduce

phase

Output

files

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 15


Fehlertoleranz

Arbeiter

§ Werden periodisch abgefragt, ob noch funkTonsfähig

§ Keine Antwort: Kennzeichnung als nicht funkTonsfähig

§ Zugewiesene Aufgaben werden vom Koordinator neu verteilt

§ Auch erfolgreich beendete Map-­‐Aufgaben werden neu verteilt, da deren Ausgabe

auf lokaler Festplame war

§ Reduce-­‐Arbeiter werden über Änderung benachrichTgt

Koordinator

§ Zustand wird regelmäßig gesichert („Checkpoin7ng“)

§ Bei Versagen: Neustart und Wiederherstellung des letzten gesicherten Zustands

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 16


Verteiltes Dateisystem

Wie gelangen die Daten zu den Workers

Verschiebe nicht die Daten zu den Workers, sondern die Workers zu den Daten!

§ Daten sind auf den lokalen Festplamen der einzelnen Knoten im Cluster gespeichert

§ Starten der Workers an welchen die Daten lokal vorliegen

Daten in einem verteilten Dateisystem gespeichert

§ GFS (Google File System) für Googles MapReduce

§ HDFS (Hadoop Distributed File System) für Hadoop

Googles MapReduce

§ Map speichert Ergebnis im lokalen Dateisystem.

§ Reduce holt sich Daten via RPC; schreibt Ergebnis in verteiltes Dateisystem (GFS).

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 17


MapReduce – Beispiele

WeSerdaten

1. Unstrukturierte Wemerdaten einlesen

§ 0029029070999991901010106004+64333+023450FM-­‐12+00059

9999V0202701N015919999999N0000001N9-­‐00781+9999910200

1ADDGF108991999999999999999999

§ 0029029070999991901010113004+64333+023450FM-­‐12+00059

1901-­‐01-­‐01



13:00

9999V0202901N008219999999N0000001N9-­‐00721+9999910200

-­‐7,2°c

1ADDGF104991999999999999999999

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 18


MapReduce – Beispiele (2)

WeSerdaten

2. Zuordnung von Datei-­‐Inhalt zu PosiTonen

§ Jede Zeile wird anhand des Byte-­‐Offsets idenTfiziert

§ Byte-­‐Offset verweist jeweils auf den Beginn der Zeile

§ (k1, v1) = (long, String)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 19


MapReduce – Beispiele (3)

WeSerdaten

3. Map: Transformieren dieser Schlüssel-­‐/Werte-­‐Paare in Zwischen-­‐Schlüssel-­‐

/Werte-­‐Paare

Jahr Temperatur

§ BenöTgte Daten werden aus den Zeilen extrahiert

1950 0

§ Es entstehen viele Key/Value-­‐Paare

1950 22

1949 111

1949 78

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 20


MapReduce – Beispiele (4)

WeSerdaten

4. Shuffle: Erzeugen von gruppierten Schlüssel-­‐/Werte-­‐Paaren

§ SorTeren der Schlüssel

Jahr

§ Zuordnen von Werten zu einem Schlüssel

§ Jeder Mapper schreibt den sorTerten Output ins

Filesystem

§ Pro Jahr wird ein eigener Reducer auf einem Rechner

im Clusterausgeführt

1949 111

Temperatur

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 21

78

1950 0

22


MapReduce – Beispiele (5)

WeSerdaten

5. Reduce

§ Zusammenfassung der Werte (hier: Maximum finden)

§ Pro Schlüssel nur noch ein Wert

Jahr Temperatur

1949 111

1950 22

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 22


MapReduce – Beispiele (6)

WeSerdaten

6. Ausgabe in eine Datei

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 23


MapReduce – Beispiele (7)

Beispiel aus Sprachverarbeitung in einem Übersetzungssystem

§ Zähle, wie oe jede 5-­‐Wörter-­‐Sequenz in einem großen Korpus von Dokumenten

vorkommt

§ Map: Extrahiere (5-­‐Wörter-­‐Sequenz, Anzahl) von Dokument

§ Reduce: Kombiniere Anzahl

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 24


MapReduce – Beispiele (8)

Performanz

§ Ausführung eines auf MapReduce basierenden grep-­‐Programms (Global Regular

Expression Print)

§ Durchsucht 10 10 100-­‐Byte lange Datensätze (~ 1TB) nach einem seltenen, drei

Zeichen langem Muster (nur in 92.337 Datensätzen vorhanden)

§ Eingabe in M=15.000 ParTTonen à 64MB unterteilt, Ausgabe in einer einzigen

ParTTon (R=1)

§ Datentransferrate im zeitlichen Verlauf (Cluster mit 1.800 Rechnern, mit je 2GHz

Intel Xeon, 4GB RAM, 2x160GB HD, Gigabit Ethernet)

Rate, mit der Eingabedaten

gelesen werden

Sekunden nach Ausführung

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 25


MapReduce – Beispiele (9)

Performanz (Fortsetzung)

§ Rate nimmt anfangs zu, wenn mehr und mehr Rechnern Arbeit zugewiesen wird

§ Maximum bei ~30GB/s und 1.764 Arbeitern

§ Danach beginnen Map-­‐Aufgaben ferTg zu werden

§ Gesamtdauer der Ausführung etwa 150s; Mehraufwand beim Start ~1 Minute

(Programm auf verschiedenen Rechnern starten, etc.)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 26


Map-­‐Reduce – Implemen7erungen

Das MapReduce-­‐Konzept ist nicht an eine besUmmte Rechnerarchitektur

gebunden

§ Die ImplemenTerung der Schnimstelle kann z.B. auf Rechner mit verteiltem Speicher

(Cluster) oder gemeinsamen Speicher (MulTcore-­‐Rechner) zugeschnimen sein

§ Beispiel für ImplemenTerungen

§ Auf Architektur mit gemeinsamen Speicher: Phoenix (Stanford, C++/PThreads)

§ Auf Architektur mit verteiltem Speicher: Google, Hadoop

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 27


Map-­‐Reduce – Implemen7erungen (2)

Proprietäre Entwicklung durch Google

§ ImplemenTert in C++

§ Bindings in Java, Python

Open-­‐source-­‐ImplemenUerung in Java (Hadoop)

§ Ursprünglich von Yahoo entwickelt, produkTv eingesetzt

§ Mimlerweile Apache-­‐Projekt

§ hmp://hadoop.apache.org/mapreduce/

Viele Forschungsprototypen

§ Umsetzungen für GPUs

§ Bingsheng He, Wenbin Fang, Qiong Luo, Naga K. Govindaraju, and Tuyong Wang.

Mars: A MapReduce Framework on Graphics Processors. PACT 2008

§ Cell-­‐Prozessoren

§ Marc de Kruijf and Karthikeyan Sankaralingam. MapReduce for the Cell B.E.

Architecture. IBM Journal of Research and Development, 53(5), 2009.

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 28


© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 29


Über Hadoop

Was ist Hadoop

§ Hadoop ist eine ImplemenTerung des MapReduce-­‐Konzepts

§ Open Source Projekt der Apache Soeware FoundaTon

§ Download für Unix/Linux verfügbar

§ Unter Windows nur mit Cygwin

§ Programmierung mit Java, Python, C++, etc. möglich

§ Hadoop selbst benöTgt Java 1.6

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 30


Hadoop@Yahoo

Content

Op7miza7on

Search Index

Ads

Op7miza7on

Content Feed

Processing

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 31


Hadoop-­‐Anwendungen@Yahoo

Webmap

Sort benchmarks

(Jim Gray contest)

Largest cluster

~70 hours runTme

~300 TB shuffling

~200 TB output

1480 nodes

1 Terabyte sorted

§ 209 seconds

§ 900 nodes

2000 nodes

§ 6PB raw disk

§ 16TB of RAM

§ 16K CPUs

2008 2009

~73 hours runTme

~490 TB shuffling

~280 TB output

2500 nodes

1 Terabyte sorted

§ 62 seconds, 1500 nodes

1 Petabyte sorted

§ 16.25 hours, 3700 nodes

4000 nodes

§ 16PB raw disk

§ 64TB of RAM

§ 32K CPUs

§ (40% faster CPUs too)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 32


Hadoop-­‐Komponenten

Besteht aus drei Komponenten

§ Hadoop Common

§ Stellt GrundfunkTonen bereit: implemenTerungsneutrale File-­‐System-­‐

Schnimstelle, Schnimstelle für die RPC-­‐KommunikaTon im Cluster

§ Hadoop Distributed FileSystem (HDFS)

§ Primäre Dateisystem von Hadoop, folgt dem Vorbild des Google-­‐Dateisystems

§ Eingabe-­‐Dateien müssen erst in das HDFS kopiert werden, bevor sie verwendet

werden können

§ Master-­‐Slave Struktur, Fehlertoleranz durch dreifache Redundanz

§ Performanz auf sequenTelles Lesen und Schreiben ganzer Blöcke opTmiert

§ Es werden auch andere Dateisysteme unterstützt (z.B. CloudStore, S3)

§ Hadoop MapReduce

§ Bietet alle FunkTonen um nach dem MapReduce-­‐Programmiermodell zu

entwickeln

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 33


Hadoop – Funk7onsweise

Job Tracker

§ Koordiniert Jobs

§ Splimet Job in Tasks

Task Tracker

§ Führt die Map und Reduce-­‐Tasks aus

§ Ein Task je Prozessor-­‐Kern

Dateisystem

§ Stellt die Job-­‐Ressourcen bereit

§ Daten werden in Blöcke gesplimet

§ Daten werden redundant gespeichert

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 34


Hadoop – Schrib 1

§ Aufruf von runJob()

§ Erzeugung einer neuen JobClient-­‐Instanz

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 35


Hadoop – Schrib 2

§ Aufruf von getNewJobId()

§ Erzeugung einer neuen Job-­‐ID

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 36


Hadoop – Schrib 3

§ Kopieren aller Job-­‐Daten in das

gemeinsame Filesystem

(Programm und Bibliotheken)

§ Übertragung der KonfiguraTonsdaten

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 37


Hadoop – Schrib 4

§ Aufruf von submitJob()

§ Job wird an den Job Tracker übergeben

§ Überprüfung von Input und Output SpezifikaTonen

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 38


Hadoop – Schrib 5

§ IniTalisierung des Jobs

§ Verwaltung der Jobs mit einer Job-­‐Warteschlange

§ Einteilung eines Jobs in mehrere Tasks

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 39


Hadoop – Schrib 6

§ Abholung der Input Splits

§ Input Splits sind logische Referenzen auf

einen Block im HDFS

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 40


Hadoop – Schrib 7

§ Einzelne Tasks werden den Task Trackern

gemäß dem Job Scheduling zugeteilt

§ „heartbeat“ meldet dem Job Tracker

Statusmeldungen, z.B. dass der Task Tracker

zur Verfügung steht

§ Task Tracker können nur begrenzte Anzahl

an Tasks gleichzeiTg bearbeiten

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 41


Hadoop – Schrib 8

§ Abholung der Daten und Bibliotheken zum aktuellen Task

§ Tasks bearbeiten nur lokal vorhandene Input Splits

§ Jeder Map-­‐Task verarbeitet einen Input Split

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 42


Hadoop – Schrib 9

§ TaskRunner Instanz startet neue JVM zur

Ausführung eines Tasks

§ Für jeden Task wird eine eigene JVM gestartet

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 43


Hadoop – Schrib 10

§ Ausführung des Tasks

§ Child-­‐Prozess kommuniziert mit dem

Parent-­‐Task Tracker

§ Melde „finished“ oder „failed“ an Task Tracker

§ Wenn alle Tasks ferTg, melde Job als

„completed“

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 44


Ansätze für SprachabstrakUonen

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 45


Ansätze für Sprachabstrak7onen

Verschiedene Vorschläge für Skriptsprachen, die Konstrukte auf höherer

AbstrakUonsebene anbieten, z.B.

§ Sawzall

§ Bei Google entwickelte und benutzte Skriptsprache, die auf Googles MapReduce-­‐

ImplemenTerung aufsetzt

§ Rob Pike, Sean Dorward, Robert Griesemer, Sean Quinlan. InterpreTng the Data:

Parallel Analysis with Sawzall

§ DryadLINQ

§ Basierend auf der Microsoe-­‐Umsetzung von MapReduce Dryad (

hmp://research.microsoe.com/en-­‐us/projects/dryad/)

§ Pig

§ Skriptsprache, die ursprünglich als Forschungsprojekt bei Yahoo im Mai 2006

begann

§ Ziel: MapReduce-­‐Programme generieren (z.B. für Hadoop)

§ hmp://wiki.apache.org/incubator/PigProposal

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 46


Ansätze für Sprachabstrak7onen (2)

Verschiedene Vorschläge für Skriptsprachen, die Konstrukte auf höherer

AbstrakUonsebene anbieten, z.B.

§ Dremel (Google)

§ System zur Ausführung interakTver Ad-­‐hoc-­‐Anfragen auf großen Datenmengen

§ Geschachtelte Datensätze

§ Spaltenbasiertes Layout

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 47


KriUk an MapReduce

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 48


Kri7k an MapReduce

MapReduce-­‐Kontroverse in der Datenbank-­‐Gemeinde

§ MapReduce wiederholt bereits gemachte Fehler

§ „Brute-­‐force-­‐Ansatz“, keine Indizierung o.ä.

§ Performanz unklar

§ Kein „Schema“ für Daten

§ Konstrukte nicht abstrakt genug

§ Keine angemessene Abfragesprache

David J. DeWiS and Michael Stonebraker, MapReduce: A major step backwards, The

Database Column, Januar 2008

hmp://www.databasecolumn.com/2008/01/mapreduce-­‐a-­‐major-­‐step-­‐back.html

hmp://www.databasecolumn.com/2008/01/mapreduce-­‐conTnued.html

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 49


Architekturunterschiede DBMS vs. MR

Parallele DBMS

MapReduce

Schemaunterstützung X -

Indexe X -

Programmiermodel

Deklarativ

(SQL)

Beschreibung eines Alg

orithmus

(C/C++, Java, …)

Optimierung X -

Flexibilität - X

Fehlertoleranz - X

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 50


DBMS + MapReduce

PIG, Hive,

Cloudbase

SQL or Script

HadoopDB,

Asterdata,

Greenplum

Map-­‐

Reduce

Map-­‐

Reduce

DBMS

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 51


Benchmark

Hadoop

§ 0.19.0

§ Java 1.6

DBMS-­‐X

§ Parallele shared-­‐nothing, zeilenbasierte Datenbank

§ Hash-­‐parTToniert, Indexe angelegt

§ Kompression akTviert

VerUca

§ Parallele shared-­‐nothing, spaltenbasierte Datenbank (Version 2.6)

§ Kompression akTviert

§ Standardeinstellung (+Hint, dass jeweils nur eine Anfrage ausgeführt wird)

§ Keine Sekundärindexe

Alle drei Systeme wurde auf einem Cluster bestehend aus 100 Knoten installiert

Durchführung von

§ Load, SelekTon, AggregaTon und Join

Andrew Pavlo , Erik Paulson , Alexander Rasin , Daniel J. Abadi , David J.

DeWim , Samuel Madden , Michael Stonebraker, A comparison of

approaches to large-­‐scale data analysis. SIGMOD, June 29-­‐July 02,

2009, Providence, Rhode Island, USA.

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 52


Benchmark – Umgebung

Datensatz

§ Dokumente : 600.000 unterschiedliche Dokument an einem Knoten

§ 155 Mio. UserVisits-­‐Tupel (20GB/Knoten)

§ 18 Mio. Ranking-­‐Tupel (1GB/Knoten)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 53


Daten Laden

ReorganisaTon

Ladezeit

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 54


Selek7on

Ziel

§ Finde die pageURLs in der Ranking-­‐Tabelle (1GB/node) deren pageRank einen

gewissen Schwellwert überschreiten

Anfrage

§ SELECT pageURL, pageRank

FROM Rankings WHERE pageRank > x

§ x = 10, resulTert in ca. 36.000 Zeilen pro Knoten

Für MapReduce, wurde die SelekUon in Java implemenUert

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 55


Selek7on (2)

Zeit für Merge der

Output-­‐Dateien in

eine Datei

(Zusätzlicher MR-­‐

Job)

Verarbeitungszeit

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 56


Aggrega7on

Ziel

§ Berechnung des gesamten Werbeumsatzes (adRevenue) für jede sourceIP in der

Tabelle UserVisits (20GB/Knoten).

Anfrage

§ SELECT sourceIP, SUM(adRevenue)

FROM UserVisits GROUP BY sourceIP

§ Die Anfrage erzeugt 2,5 Mio. Ergebnistupel

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 57


Aggrega7on (2)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 58


Join

Ziel

§ Join besteht aus zwei Unteraufgaben

§ Join der Tabellen Ranking und Uservisits und Berechnung des Gesamtumsatzes

und des durchschnimlichen pageRank

§ Absteigende SorTerung und Rückgabe des Tupel mit dem höchsten Umsatz

Anfrage

§ SELECT INTO Temp sourceIP, AVG(pageRank) AS avgPageRank,

SUM(adRevenue) AS totalRevenue

FROM Rankings AS R, UserVisits AS UV

WHERE R.pageURL = UV.destURL AND UV.visitDate

BETWEEN Date(‘2011-01-15’) AND Date(‘2011-01-22’)

GROUP BY UV.sourceIP

§ SELECT sourceIP, totalRevenue, avgPageRank FROM Temp

ORDER BY totalRevenue DESC LIMIT 1

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 59


Join (2)

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 60


Abschließender Vergleich

Ladezeit sind bei MapReduce um Größenordnungen besser (im Prinzip nicht

vorhanden)

Bei den Ausführungszeiten schneiden DBMS weitaus besser ab (1-­‐2

Größenordnungen)

§ Vorverarbeitung beschleunigt Ausführung

§ z. B. haben VerTca und DBMS-­‐X einen Index auf der pageRank-­‐Spalte

à MapReduce ist gut für sogenannte on-­‐demand Berechnungen (on-­‐off

processing), DBMS für sich wiederholende Datenanalysen

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 61


HadoopDB

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 62


Parallele DBMS

Vorteile

§ Skaliert gut bis zu wenigen dutzend Knoten

§ Jahrzehnte der Forschung in der PerformanzopTmierung

§ Indizierung, Kompression, Materialisierung, Ergebnispuffer, I/O Sharing

§ OpTmierer für verteilte Workloads zugeschnimen

§ Hohe Performanz (Out-­‐of-­‐box)

§ Flexible und mächTge Anfragesprache

Nachteile

§ Schlechte Fehlertoleranz (Fehler unüblich)

§ Sehr schwer auf mehrere hundert Knoten skalierbar (größte bekannte InstallaTon

hat 96 Knoten, Ebay)

§ Knoten müssen homogen sein

§ Kosten oe im 7-­‐stelligen Bereich

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 63


MapReduce

Vorteile

§ Für hochskalierende Datenanalysen entworfen

§ Fehlertolerant (Erkennung und Neuzuweisung von Task bei ausgefallenen Knoten)

§ Gute Performanz auch in heterogenen Umgebungen (redundante Taskausführung)

§ Geringe Kosten

Nachteile

§ Performanz

§ kein Datenmodell

§ üblichen OpTmierungstechniken nicht anwendbar

§ Keine Datenanalyse auf strukturierten Daten

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 64


HadoopDB -­‐ Mo7va7on

KombinaUon beider Welten

Zieleigenschafen

§ Performanz

§ Fehlertoleranz

§ Ausführung auch in hardwareheterogenen Umgebungen

§ Flexible Anfragesprache

Idee

§ Mehrere DBMS-­‐Einzelknoten werden durch das Hadoop-­‐Framework verbunden und

koordiniert

§ Anfragen werden durch MapReduce parallel verarbeitet, Hauptarbeit durch DBMS

erledigt

§ Kombiniert Fehlertoleranz (Heterogenität der Umgebung) von Hadoop sowie die

Performanz paralleler DBMS

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 65


HadoopDB -­‐ Architektur

Komponenten

§ Hadoop

§ Database Connector

§ Catalog

§ Data Loader

§ SQL-­‐MR-­‐SQL Planner

HadoopDB: An architectural Hybrid of MapReduce and DBMS Technologies for

AnalyTcal Workloads. Azza Abouzeid et.al. VLDB 2009, France.

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 66


HadoopDB – Architektur (2)

SQL – MapReduce – SQL (SMS) Planner

§ Basiert auf HIVE

§ SQL-­‐ähnliche Anfragesprache auf MR (für Data-­‐Warehouse-­‐Szenarien,

hmp://hive.apache.org/)

§ HIVE nutzt regelbasierte OpTmierung (nicht kostenbasiert)

§ Erweiterung von HIVE, dass zur TransformaTon von HQL-­‐ in MR-­‐Jobs verwendet

wird (auf HDFS-­‐Tabellen)

§ Zusätzlich werden OperaTonen in das DBMS gedrückt

§ Bisher Unterstützung von Filter, SelekTon und AggregaTon

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 67


Ausblick

Big Data

PBs of data, 10 2 -­‐10 5 nodes

Opera7onal

High qps, a few rows/op

e.g., BigTable, Dynamo, PNUTS

Analy7c

Low qps, billions of rows/op

(MapReduce, Hadoop, Dryad)

Interac7ve Scripted

(Dremel) (PigLaTn, Sawzall)

Virtualiza7on

(Scalability)

Mul7-­‐Tenancy

Map N logical systems into 1

physical system

[S. Melnik: The FronTers of Data Programmability, BTW 2009]

© Prof. Dr.-­‐Ing. Wolfgang Lehner| Webscale Data Management 68

Weitere Magazine dieses Users
Ähnliche Magazine