datenbankanwendung - wintersemester...

44
Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern [email protected]

Upload: others

Post on 16-Oct-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

DatenbankanwendungWintersemester 2014/15

Prof. Dr.-Ing. Sebastian MichelTU Kaiserslautern

[email protected]

Page 2: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

MapReduce - Veranschaulichung der Phasen

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 2 / 44

Page 3: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Formal: Map und Reduce Funktionen

� map(k1, v1) → list(k2, v2)

� reduce(k2, list(v2)) → list(k3, v3)

Schlussel (Keys) erlauben Daten Maschinen zu zuordnen.

Beispiel fur Schlussel

� k1 = Id eines Dokuments (oder Offset in Datei)

� v1 = Inhalt des Dokuments (oder Zeile in Datei)

� k2 = Wort

� v2 = Zahler

� k3 = Wort

� v3 = Zahler

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 3 / 44

Page 4: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

SQL in MapReduce: Selektion und Projektion

Gegeben eine Relation R mit sch(R) = (A,B, . . .). Tupel sind in einerDatei gespeichert (z.B. als CSV-Datei). Wie konnen typische SQLAnfragen ausgefuhrt werden?

Selektion

� WHERE Klausel kann leicht in Map-Phase uberpruft werden.

� Wie bei dem Grep-Beispiel.

� Kein Reducer erforderlich.

Projektion

� Ebenfalls offensichtlich: Nur gewunschte Attribute der Tupel werdenausgegeben (emit).

� Auch hier ist kein Reducer notwendig.

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 4 / 44

Page 5: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

SQL in MapReduce: Group-By, Aggregate, Having

select abteilung, avg(gehalt)from gehaeltergroup by abteilunghaving avg(gehalt) > 50000

Group-By, Aggregate

� Map: Sendet Tupel zu Reducer anhand des Attributs, nach demgruppiert wird, hier der Abteilung, als Schlussel.

� Reducer erhalt somit alle Tupel die gleichen Wert fur Abteilunghaben und kann dann gruppieren.

Having

� Having ist ein Uberprufung einer Eigenschaft auf den Daten einerGruppe, wird also auch im Reducer ausgefuhrt.

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 5 / 44

Page 6: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

SQL in MapReduce: Joins in MapReduceEin einfacher Equi-Join (hier sogar Naturlicher-Join) zwischen zweiRelationen R und S mit sch(R) = (A,B) und sch(S) = (B,C), also

select *from R, Swhere R.B=S.B

Beispielauspragung der Relationen:

RA B

x 18y 9w 64. . . . . .

SB C

6 w5 e9 r. . . . . .

Wie kann dieser Join mit Hilfe von MapReduce realisiert werden?Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 6 / 44

Page 7: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Joins in MapReduce

� Offensichtlich muss geschaut werden welche Tupel aus R und Sverbunden (gejoint) werden konnen.

� Im Fall des Naturlichen-Joins bzw. Equi-Joins ist dies besonderseinfach: Ergebnisse mussen, hier im Beispiel, im Attribut Bubereinstimmen, also R.B = S.B.

� Wie kann man erreichen, dass Tupel mit gleichem Attributwert fur Bauf der gleichen Maschine landen?

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 7 / 44

Page 8: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Reduce-Side Join (Equi-Join)

Map

� Sende Tupel t zu Reducer anhand Schlussel t.B

� Zusatzlich zum Tupel wird auch noch mitgeschickt ob t aus R oderaus S ist. Wieso?

Reduce

� Joine Tupel t1, t2 falls t1.b = t2.b und t1 aus R ist und t2 aus S.

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 8 / 44

Page 9: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Map-Side Join - Spezialfall

� Fur den Fall, dass eine der beiden Relationen klein ist, sagen wir R:

Map

� Gesamte Relation R ist bekannt

� Join kann also im Map-Prozess durchgefuhrt werden.

� Ausgabe ist das verbundene Tupel

Reduce

� Es ist kein Reducer erforderlich!

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 9 / 44

Page 10: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Reduce-Side Join mit Optimierung durch Semi-Join-Trick

� Wie zuvor, Relationen R und S mit sch(R) = (A,B) undsch(S) = (B,C)

und auch wieder Equi-Join, d.h. Join uber gleiche Werte von B

� Nun, Annahme: Anzahl der distinct B Werte in R ist klein.

Map

� Alle distinct Werte des Attributs B der Relation R sind bekannt;nennen wir die Menge D

� Sende Tupel aus R anhand des Schlussels R.B

� Aber: Sende Tupel t aus S anhand Schlussel t.B falls t.B ∈ D

Reduce

� hier wird der tatsachliche Join (das Verbinden von Tupeln) ausgefuhrt

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 10 / 44

Page 11: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Die Geschichte von MapReduce

Ursprung bei Google

� Beschrieben in einem Artikel aus 2004: Prinzip, Anwendungsfalle,Google-File-System, etc.

� Jeffrey Dean, Sanjay Ghemawat: MapReduce: Simplified DataProcessing on Large Clusters. OSDI 2004:

Nachfolgearbeiten/Implementierungen

� Es gibt einige z.T. frei verfugbare MapReduce Implementierungen.

� Am wohl bekanntesten ist Hadoop (Apache), ursprunglich bei Yahooentwickelt; frei verfugbar.

� Tipp: Hortonworks bietet Virtual Machine (VM) zum Herumspielenmit Hadoop und anderen neuen Technologien an

http://hadoop.apache.org/

http://hortonworks.com/products/hortonworks-sandbox/Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 11 / 44

Page 12: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Code: WordCount in Hadoop (Ausschnitt!)1 p u b l i c s t a t i c c l a s s Map e x t e n d s Mapper<

LongWri tab le , Text , Text , I n t W r i t a b l e > {2

3 p u b l i c v o i d map( L o n g W r i t a b l e key , Text v a l u e ,Context c o n t e x t ) throws IOExcept ion ,I n t e r r u p t e d E x c e p t i o n {

4 S t r i n g l i n e = v a l u e . t o S t r i n g ( ) ;5 S t r i n g T o k e n i z e r t o k e n i z e r = new

S t r i n g T o k e n i z e r ( l i n e ) ;6 w h i l e ( t o k e n i z e r . hasMoreTokens ( ) ) {7 word . s e t ( t o k e n i z e r . nextToken ( ) ) ;8 c o n t e x t . w r i t e ( word , one ) ;9 }

10 }11 }

Wie genau Key und Value ausschauen hangt von Implementierung des

InputFormat ab.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 12 / 44

Page 13: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Code: WordCount in Hadoop (Ausschnitt!) (2)

1 p u b l i c s t a t i c c l a s s Reduce e x t e n d s Reducer<Text ,I n t W r i t a b l e , Text , I n t W r i t a b l e > {

2

3 p u b l i c v o i d r e d u c e ( Text key , I t e r a b l e <I n t W r i t a b l e > v a l u e s , Context c o n t e x t ) throwsIOExcept ion , I n t e r r u p t e d E x c e p t i o n {

4 i n t sum = 0 ;5 f o r ( I n t W r i t a b l e v a l : v a l u e s ) {6 sum += v a l . g e t ( ) ;7 }8 c o n t e x t . w r i t e ( key , new I n t W r i t a b l e ( sum ) ) ;9 }

10

11 }

Quelle: http://wiki.apache.org/hadoop/WordCountProf. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 13 / 44

Page 14: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Code: WordCount in Hadoop (Ausschnitt!) (3)

1 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) throws E x c e p t i o n {2 C o n f i g u r a t i o n c o n f = new C o n f i g u r a t i o n ( ) ;3

4 Job j o b = new Job ( conf , ” wordcount ” ) ;5

6 j o b . s e t O u t p u t K e y C l a s s ( Text . c l a s s ) ;7 j o b . s e t O u t p u t V a l u e C l a s s ( I n t W r i t a b l e . c l a s s ) ;8

9 j o b . s e t M a p p e r C l a s s (Map . c l a s s ) ;10 j o b . s e t R e d u c e r C l a s s ( Reduce . c l a s s ) ;11

12 j o b . s e t I n p u t F o r m a t C l a s s ( Text InputFormat . c l a s s ) ;13 j o b . s e t O u t p u t F o r m a t C l a s s ( TextOutputFormat . c l a s s ) ;14

15 F i l e I n p u t F o r m a t . addInputPath ( job , new Path ( a r g s [ 0 ] ) ) ;16 F i l e O u t p u t F o r m a t . setOutputPath ( job , new Path ( a r g s [ 1 ] ) ) ;17

18 j o b . w a i t F o r C o m p l e t i o n ( t r u e ) ;19 }

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 14 / 44

Page 15: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Screenshot Hadoop Distributed File System Web UI

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 15 / 44

Page 16: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Screenshot Hadoop Web UI (Monitoring)

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 16 / 44

Page 17: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Typische Topologie

Node  1  

Disks  

Node  2  

Disks  

Node  3  

Disks  

Node  4  

Disks  

Node  5  

Disks  

Node  6  

Disks  

Rack  1   Rack  2  

Switch  

Topology kann/muss in einer Konfigurationsdatei mitgeteilt werden.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 17 / 44

Page 18: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Rack Awareness

Data-local, rack-local und off-rack Map-Prozesse.

node  

rack  

data  center  Map  task  HDFS  block  

Kostenmodell gibt Kosten fur diese einzelnen Falle an.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 18 / 44

Page 19: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Ein Zusatzlicher “Combiner” - Probleme

Beobachtung

� In der Map-Phase konnen große Mengen an Zwischenergebnissenanfallen

� Da Netzwerk-Bandbreite oft kritisch fur Performance ist sollteversucht werden diese Zwischenergebnisse zu reduzieren(!)

� Dies funktioniert fur Funktionen wie max:max(1, 2, 6, 2, 1, 9) = max(max(1, 2, 6),max(2, 1, 9))

Der Combiner

� Wird auf die Ausgabe eines (jeden) Map-Prozessen angewendet

� Normalerweise identisch zu dem Reducer (im Sinne von“Code”)

� Aber: Kein Ersatz fur den Reducer!

� Wieso? Der Combiner sieht nur Zwischenergebnisse!Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 19 / 44

Page 20: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Ein Zusatzlicher “Combiner”

Achtung: Manche Aggregationen (Funktionen) konnen nicht lokalausgefuhrt werden.

� Beispiel: Gib Ausgabe aus falls sum(value) > τ

� Wieso geht das i. Allg. schief? Combiner kann diese Entscheidungnicht treffen, da er nur lokale Informationen sieht. Und nicht obglobal die Summe uber oder unter Grenzwert liegt.

� Trotzdem macht hier evtl. ein Combiner Sinn, dann aber nuraufsummieren und nicht entscheiden ob uber oder unter Grenzwert

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 20 / 44

Page 21: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Bewertung von MapReduce

Positiv

� Einfaches Modell

� Skalierbar

� Zielt auf hohen Durchsatz

� Implementierung tolerant gegenuber Ausfallen von Knoten

Negativ

� Sehr einfache Routinen; Implementierung komplexerer Algorithmenwird leicht umstandlich

� Fur komplexe Dingen sind oft mehrere Iterationen von MapReducenotig

� Schreiben von komplexen Anfragen ebenso. SQL (oder so etwas inder Art) nicht unterstutzt

� Langsame Antwortzeit (schlecht fur individuelle, kleine Arbeiten)Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 21 / 44

Page 22: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL MapReduce

Ausblick auf weitere MapReduce Themen (in DDMVorlesung)

Hadoop

� Realisierung Hadoop Distributed File System

� Realisierung Hadoop MapReduce, Ausfallsicherheit, etc.

� Partitionierer, Composite Keys, Sortierung (secondary sort)

Auf MapReduce aufbauend

� Pig (mit Anfragesprache PigLatin): ubersetzen von komplexerenDatenverarbeitungsbefehlen in MapReduce Workflow

� Hive: Machtigere Sprache (∼SQL), wird auf MapReduce abgebildet.

Daten-Analyse-Algorithmen

� Graphalgorithmen, insbesondere PageRank

� Statistiken zu Worthaufigkeiten

� ...Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 22 / 44

Page 23: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

NoSQL

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 23 / 44

Page 24: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Was steckt hinter NoSQL?

� Beobachtung/Hypothese: Es gibt kein one-size-fits-allDatenbanksystem!

� NoSQL = Not Only SQL (nicht unbedingt “no” SQL)

� Steht als Bezeichner fur eine Vielzahl von nicht traditionellenDatenmanagement-Systemen, die stark auf die Anwendungzugeschnitten sind:

- Key-Value-Datenbanken- Graph-Datenbanken- Dokument-Datenbanken

Uberblick gibt es unter: http://nosql-database.org/

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 24 / 44

Page 25: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Charakteristika von NoSQL Systemen

� Kein relationales Datenmodell

� System sind ausgelegt horizontal zu skalieren (scale out), also Datenund Datenverarbeitung uber mehrere Maschinen zu verteilen.

� Kein Schema oder nur sehr lose beschrieben.

� Einfache API (normalerweise keine Unterstutzung von SQL): CRUD(create, read, update, delete).

� Ublicherweise keine ACID Semantik. Stattdessen: BASE ;)

� Oftmals sind diese System open-source.

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 25 / 44

Page 26: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

NoSQL: Key/Value Datenbanken

� Speichern von Key-Value Paaren

� Values konnen komplexe(re) Datentypen sein

� Beispiele von Systemen: Amazon Dynamo, Redis, Voldemort

� Zugriff via CRUD-Operationen: Create, Read, Update, Delete

� Einige Systeme unterstutzen auch machtigere/komplexereAnfragetypen.

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 26 / 44

Page 27: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Beispiel: Key-Value-Store: Redis

� Online Tutorial: http://try.redis.io

Get und Set

SET name ”Datenbankanwendung”

GET name → Datenbankanwendung

Operationen auf Listen

LPUSH meineListe ”a”

LPUSH meineListe ”b”

LLENGTH → 2

LRANGE meineListe 0 1 → ”b”,”a”

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 27 / 44

Page 28: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Dokumenten Datenbanken

� Speichern JSON (JavascriptObject Notation), siehe Beispiellinks, oder XML Dokumente

� Systeme: MongoDB oderCouchDB

{

"firstName":"John",

"lastName":"Smith",

"age":25,

"address":{

"street":"21 2nd Street",

"city":"New York",

"state":"NY",

"postalCode":10021

},

"phoneNumbers":[

{

"type":"home",

"number":"212 555-1234"

},

{

"type":"fax",

"number":"646 555-4567"

}

]

}Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 28 / 44

Page 29: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Beispiel: MongoDB

� Online Tutorial: http://try.mongodb.org

var student = {name:'Jim', scores:[75,99,87.2]};

db.lecture.store(student);

db.lecture.find(); --liefert alle Eintraege

db.lecture.find({name:'Jim'}); --spezielle Suche

db.users.update({name:'Johnny'},{name:'Cash',

languages:['english']});

� MongoDB unterstutzt MapReduce http:

//docs.mongodb.org/manual/tutorial/map-reduce-examples/

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 29 / 44

Page 30: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

CAP Theorem

� Ein System kann nichtgleichzeitig die folgenden dreiEigenschaften unterstutzen:

- Consistency (Konsistenz)

- Availability (Verfugbarkeit)

- Partition Tolerance(Daten/verarbeitung verteilt aufmehrere Maschinen)

C A

P

C A

P

C+A

C+P A+P

http://webpages.cs.luc.edu/~pld/353/gilbert_lynch_brewer_

proof.pdf

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 30 / 44

Page 31: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Consistent + Available

� Beispiel: Traditionelle(zentralisierte)Datenbanksysteme

C AC AC+A

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 31 / 44

Page 32: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Partition Tolerant + Available

� Beispiel: Domain Name Service(DNS)

A

P

A

P

A+P

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 32 / 44

Page 33: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Consistent + Partition Tolerant

� Beispiel: Verteilte Datenbankenmit verteiltem Locking/Commit

C

P

C

P

C+P

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 33 / 44

Page 34: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Und nun?

Ohne ”P” geht es nicht

� Es sind große Datenmengen zu verarbeiten

⇒ Horizontela Skalierung

D.h. das System muss Partitionierung der Daten/Verarbeitung aufverschiedene Maschinen unterstutzen.

� Also ist ”P” gegeben. Was ist nun zu tun?

Abwagung (Tradeoff) zwischenKonsistenz und Verfugbarkeit.

C A

P

C A

P

C+A

C+P A+P

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 34 / 44

Page 35: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Idee

Tradeoff zwischen Consistency und Availability.

� Repliziere Daten, d.h. mehrere Versionen pro Datensatz

� Replikate werden auf Maschinen verteilt

� Sende Updates an alle Replikate aber warte nicht aufAcknowledgement.

� Lesen Daten von Teilmenge der Replikate.

� D.h. sehr effizient aber nicht unbedingt garantiert konsistent (mankann alte Antworten erhalten)

� Erst nach einiger Zeit konsistent (wenn alle Replikate aktualisiertwurden): Eventual Consistency

Bemerkung zu Consistency� Consistency hier anders definiert als im DB-Kontext (in ACID).

� Hier, generell um Konsistenz von Replikaten (Kopien) einzelnerDatenobjekte; dem Erzwingen bzw. nicht Erzwingen von garantierterSynchronisation.Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 35 / 44

Page 36: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

BASE

Basically Available

Soft State

Eventual Consistency

http:

//www.allthingsdistributed.com/2008/12/eventually_consistent.html

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 36 / 44

Page 37: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Veranschaulichung Inkonsistenz

� Client schickt Schreibanweisung an Manager� Dieser schickt Schreibanweisung an alle Replikate.� Zeitstempel (im einfachsten Fall) beschreibt Zeitpunkt des Schreibens.� Und schickt Acknowledgement zuruck an Client sobald garantiertW Replikas aktualisiert wurden.

Maschinen mit Replikas des Datenobjekts

Manager

Client

wri

te

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 37 / 44

Page 38: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Veranschaulichung Inkonsistenz (2)

� Client schickt Leseanweisung an Manager.� Dieser leitet Anweisung an R Replikas. D.h. von N existierenden

Replikaten werden R gelesen.� Antworten werden an Client weiter geleitet.

Maschinen mit Replikas des Datenobjekts

Manager

Client

read

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 38 / 44

Page 39: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Veranschaulichung Inkonsistenz: Read

� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts

besitzen

Maschinen mit Replikas des Datenobjekts

Manager

Client

read

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 39 / 44

Page 40: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Veranschaulichung Inkonsistenz: Read - OK

� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts

besitzen

Maschinen mit Replikas des Datenobjekts

Manager

Client

Alles super!

read

read read

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 40 / 44

Page 41: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Veranschaulichung Inkonsistenz: Read - OK

� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts

besitzen

Maschinen mit Replikas des Datenobjekts

Manager

Client

Immer noch alles super!Zeitstempel (o.a.) bestimmt neueste Version.re

ad

read

read

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 41 / 44

Page 42: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Veranschaulichung Inkonsistenz: Read - Nicht Korrekt

� N = 7 Replikate� W = 3 und R = 2� Grun markiert sind Replikate, die die neue Version des Objekts

besitzen

Maschinen mit Replikas des Datenobjekts

Manager

Client

Alte Version gelesen!

read

read read

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 42 / 44

Page 43: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Eventual Consistency und Konfigurationen

Konfiguration: R +W > N

� In diesem Fall kann garantiert werden, dass immer die aktuelleVersion gelesen wird.

� Da sich die Mengen der aktualisierten Replikate und die derangefragten Replikate uberlappen mussen!

Konfiguration: R +W ≤ N

� In diesem Fall liegt Eventual Consistency vor.

Eventual Consistency

� Eventual (auf Deutsch: letztendlich) Consistency beschreibt, dassnach einer gewissen Zeit alle Replikate aktualisiert sind. Aber abdem Schreibvorgang bis zu diesem Zeitpunkt ist nicht garantiert, dassLesevorgange die zuvor geschriebene Version sehen.

Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 43 / 44

Page 44: Datenbankanwendung - Wintersemester 2014/15dbis.informatik.uni-kl.de/images/teaching/ws1415/dbaw/lecture24.pdf · Hadoop Realisierung Hadoop Distributed File System Realisierung Hadoop

MapReduce, NoSQL NoSQL

Ausblick VL Distributed Data Management (DDM)

wwwlgis.informatik.uni-kl.de/cms/courses/

distributeddatamanagement/Prof. Dr.-Ing. S. Michel TU Kaiserslautern Datenbankanwendung, WS 14/15 44 / 44