cascading big data user group

27
Herzlich willkommen Stuttgart, den 30. August 2012

Upload: big-data-user-group

Post on 13-Jul-2015

403 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cascading Big Data User Group

Herzlich willkommen

Stuttgart, den 30. August 2012

Page 2: Cascading Big Data User Group

Cascading – Top Level Business Intelligence Wenn MapReduce zu “Low-Level” ist…

MapReduce – auch ganz ohne Paradigmenwechsel

Page 3: Cascading Big Data User Group

Cascading – Top Level Business Intelligence Agenda

• Wieso denn überhaupt „Big Data“?

• Wieso brauchen wir dafür MapReduce?

• Was hat Cascading damit zu tun?

• Wie funktioniert Cascading?

• Wie kann ich Cascading in mein BI-System integrieren?

Page 4: Cascading Big Data User Group

4

Cascading – Top Level Business Intelligence Wieso denn überhaupt “Big Data”?

Definition: Wodurch zeichnet sich „Big Data“ aus?

Volumen: Immense Datenmengen, bedingt durch wachsenden

Informationsbedarf (z.B. Event-Sourcing).

Vielseitigkeit: Die Zeit strukturierter, heterogener Daten ist vorbei. Unstrukturierte Daten wie Bilder, Videos oder Fließtext halten wertvolle Informationen.

Geschwindigkeit: Nutzer erwarten Verarbeitungszeiten im „Quasi-Echtzeit“- Bereich (<HTTP-Latenzzeit).

Definition frei nach IDC

Page 5: Cascading Big Data User Group

5

Cascading – Top Level Business Intelligence Wieso denn überhaupt “Big Data”?

Walter

Alter: 25

Wohnort: Wimsheim

Mag: Äpfel

Was haben wir hier?

• konsistentes Objekt

• alle momentanen Attribute gespeichert

• klar definierte Struktur sichtbar

Was passiert im Fall einer Änderung?

Beispiel: Walter zieht nach Rutesheim um.

Attribut „Wohnort“ wird mit dem neuen Wert

überschrieben

Wohnort: Rutesheim

Information über Walters ehemaligen Wohnort

geht verloren!

Page 6: Cascading Big Data User Group

6

Cascading – Top Level Business Intelligence Wieso denn überhaupt “Big Data”?

Use

r Tr

ansa

ctio

ns

Walter ist geboren : 25.05.1987

Walter wohnt in Wimsheim: 25.05.1987

Walter mag Äpfel: 02.03.2010

Walter wohnt in Rutesheim: 07.07.2012

Was können wir tun, um das zu verhindern?

Speichern unserer Daten als Transaktionen

(Event-Sourcing) Walter

Alter: 25

Wohnort: Rutesheim

Mag: Äpfel

Zeitstempel: 30.08.2012

Page 7: Cascading Big Data User Group

Cascading – Top Level Business Intelligence Agenda

• Wieso denn überhaupt „Big Data“?

• Wieso brauchen wir dafür MapReduce?

• Was hat Cascading damit zu tun?

• Wie funktioniert Cascading?

• Wie kann ich Cascading in mein BI-System integrieren?

Page 8: Cascading Big Data User Group

8

Cascading – Top Level Business Intelligence Was ist die Idee hinter MapReduce?

MapReduce kann uns dies liefern…

Map

Key = Form

= 2

= 3

= 4

Aggregator = count

Page 9: Cascading Big Data User Group

9

Cascading – Top Level Business Intelligence Was ist die Idee hinter MapReduce?

… oder dies.

Map

Key = Farbe

= 4

= 3

= 2

Aggregator = count

Page 10: Cascading Big Data User Group

10

Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen?

Use

r tr

ansa

ctio

ns

"Benutzer" : "Walter" "Aktion" : "geboren" "Zeitstempel": 25.05.1987

"Benutzer" : "Susanne" "Aktion" : "geboren" "Zeitstempel" : 29.05.1980

"Benutzer" : "Walter" "Aktion": "wohnt in" "Attribut" : „Wimsheim“ "Zeitstempel" : 25.05.1987

"Benutzer" : "Walter" "Aktion" : "mag" "Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012

"Benutzer" : "Susanne" "Aktion" : "mag" "Attribut" : „Chicken Nuggets“ "Zeitstempel" : 01.04.2009

"Benutzer" : "Walter" "Aktion" : "wohnt in" "Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012

Map

Key = Benutzer

Wal

ter

"Benutzer" : "Walter" "Aktion" : "geboren" "Zeitstempel": 25.05.1987

"Benutzer" : "Walter" "Aktion": "wohnt in" "Attribut" : „Wimsheim“ "Zeitstempel" : 23.05.1987

"Benutzer" : "Walter" "Aktion" : "mag" "Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012

"Benutzer" : "Walter" "Aktion" : "wohnt in" "Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012

Susa

nn

e "Benutzer" : "Susanne"

"Aktion" : "geboren" "Zeitstempel" : 29.05.1980

"Benutzer" : "Susanne" "Aktion" : "mag" "Attribut" : „Chicken Nuggets“ "Zeitstempel" : 01.04.2009

Page 11: Cascading Big Data User Group

11

Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen?

Wal

ter

"Aktion" : "geboren" "Zeitstempel": 25.05.1987

"Aktion": "wohnt in" "Attribut" : „Wimsheim“ "Zeitstempel" : 25.05.1987

"Aktion" : "mag" "Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012

"Aktion" : "wohnt in" "Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012

Sieht aus als bräuchten wir hier mehr als einen Map-Schritt.

Map

Key = Aktion

geb

ore

n

"Zeitstempel": 25.05.1987

mag

"Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012

wo

hn

t in

"Attribut" : „Wimsheim“ "Zeitstempel" : 23.05.1987

"Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012

Page 12: Cascading Big Data User Group

12

Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen?

geb

ore

n

"Zeitstempel": 25.05.1987

mag

"Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012

wo

hn

t in

"Attribut" : „Wimsheim“ "Zeitstempel" : 25.05.1987

"Attribut" : „Rutesheim“ "Zeitstempel" : 07.07.2012

Und schließlich das Reduce.

Reduce

Reduce

Reduce

Walter

Alter: 25

Wohnt in: Rutesheim

Mag: Äpfel

Zeitstempel: jetzt

Page 13: Cascading Big Data User Group

13

Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen?

• Historisierung unserer Daten

Jeder Status zu einem beliebigen Zeitstempel kann einfach

wiederhergestellt werden

Ableitung von Profilen oder Mustern (z.B. Benutzer die oft

umziehen, Benutzer die häufig bestimmte Produkte kaufen…)

• Hohe Fehlertoleranz

Triviales Bewegungsdatenmodell

Operationen aggregieren stets nur vorhandene Daten

Datenbestand wird durch fehlerhafte Algorithmen nicht korrumpiert

Das bringt uns ein paar großartige Vorteile!

Page 14: Cascading Big Data User Group

Cascading – Top Level Business Intelligence Agenda

• Wieso denn überhaupt „Big Data“?

• Wieso brauchen wir dafür MapReduce?

• Was hat Cascading damit zu tun?

• Wie funktioniert Cascading?

• Wie kann ich Cascading in mein BI-System integrieren?

Page 15: Cascading Big Data User Group

15

Cascading – Top Level Business Intelligence Eine Einführung in „Cascading“

Was ist Cascading überhaupt?

“Cascading is a data processing API and processing query planner used for

defining, sharing, and executing data-processing workflows on a single

computing node or distributed computing cluster.” – http://www.cascading.org

Die Vorteile sind grundsätzlich:

• Abstraktion und Simplifikation komplexer MapReduce Prozeduren

• Schnellere Implementierung ohne Performanceverlust bei der Ausführung

• Konkatenation beliebiger MapReduce Schritte

• Einfaches Zusammenführen unterschiedlicher heterogener Datenquellen

Page 16: Cascading Big Data User Group

16

Cascading – Top Level Business Intelligence Eine typische Big Data Infrastruktur

Cascading ist, wie auch hadoop, ein Werkzeug für Batch-Processing.

Page 17: Cascading Big Data User Group

Cascading – Top Level Business Intelligence Agenda

• Wieso denn überhaupt „Big Data“?

• Wieso brauchen wir dafür MapReduce?

• Was hat Cascading damit zu tun?

• Wie funktioniert Cascading?

• Wie kann ich Cascading in mein BI-System integrieren?

Page 18: Cascading Big Data User Group

18

Cascading – Top Level Business Intelligence Terminologie

Pipe Bezeichnet einen Datenstrom. Es gibt verschiedene Pipe-Typen,

abhängig davon, was wir tun möchten. Mehrere Pipes können in

einem Assembly zusammengefasst werden.

Operation

Eine Funktion beim Durchlaufen einer Pipe.

Tuple Ein einzelner Datensatz.

Fields Die Felddefinitionen eines Tuples.

Tap Eine Datenquelle bzw. Datensenke

Scheme Ein Muster, in dem Daten in Taps gelesen bzw. geschrieben werden.

Flow Eine Konkatenation von Assemblies und Taps.

Mehrere Flows werden schlussendlich in einer Cascade zusammengefasst.

Page 19: Cascading Big Data User Group

19

Cascading – Top Level Business Intelligence Eine typische Cascading Job-Architektur

SourceTap DB (Source)

Flow

Cascade

Assembly

Pipe Tuples (data)

Tuples (data)

SinkTap DB (Sink)

Pipe Pipe

Quellstruktur Zielstruktur

Page 20: Cascading Big Data User Group

20

Cascading – Top Level Business Intelligence Verschiedene Taps

Cascading hat eine Reihe nützlicher vordefinierter Taps. Einige Beispiele:

FileTap Liest/Schreibt ins lokale Dateisystem.

Hfs Liest/Schreibt ins in der Hadoop-Konfiguration angegebene

default-Dateisystem (bei lokalem Textmodus: Lokales DS).

MultiSourceTap bzw. MultiSinkTap

Zum parallelen Lesen/Schreiben von Datensätzen aus

mehreren Datenquellen. Beim Lesen muss für alle

Datenquellen das Scheme übereinstimmen.

TemplateTap Schreibt den Output abhängig von Werten innerhalb eines

Tuples in entsprechende Verzeichnisse.

Nichtsdestotrotz kann bei anderen Datenquellen auch leicht ein eigener Tap

implementiert werden.

Page 21: Cascading Big Data User Group

21

Cascading – Top Level Business Intelligence Verschiedene Tap-Schemata

Ein Scheme gibt die Art und Weise an, wie Daten in einen Tap geschrieben

werden. Bei einer eigenen Tap-Implementierung muss also meist auch ein

eigenes Scheme definiert werden. Ein paar Basis-Schemes bringt Cascading

von Haus aus mit:

TextLine Ein einfacher Tap zum Lesen und Schreiben von

Fließtextdateien. Beim Schreiben werden mehrere Fields-

Elemente mit TABs unterteilt.

TextDelimited Teilt mehrere Fields-Elemente mittels definiertem Separator.

SequenceFile Zum binär codierten Schreiben/Lesen von Dateien.

WritableSequenceFile

Ähnlich dem SequenceFile, aber speziell für sogenannte

Writables entworfen, d.h. Fields-Elemente werden beim

Schreiben direkt in die Datei serialisiert, bzw. beim Lesen

deserialisiert und in Tuples verpackt.

Page 22: Cascading Big Data User Group

22

Cascading – Top Level Business Intelligence Die verschiedenen Pipe-Typen

Each Führt Operationen auf Tuple-Basis durch. Neben standardi-

sierten Operatoren können auch eigene Varianten imple-

mentiert oder der Datenstrom geteilt werden.

Merge Kann Datenströme mit identischen Fields zusammenführen.

GroupBy Gruppiert Tuples anhand von über Fields definierten

Kriterien.

Every Führt Operationen oder Aggregationen auf Basis von

gruppierten Tuple-Streams aus. Folgt typischerweise einer

GroupBy-Pipe.

CoJoin Führt ein Join anhand eines oder mehrerer Schlüsselfelder

durch und gruppiert die Resultate anhand des Keys.

HashJoin Führt ein Join anhand eines oder mehrerer Schlüsselfelder

durch und gibt die Resultate in beliebiger Reihenfolge aus.

Page 23: Cascading Big Data User Group

Cascading – Top Level Business Intelligence Agenda

• Wieso denn überhaupt „Big Data“?

• Wieso brauchen wir dafür MapReduce?

• Was hat Cascading damit zu tun?

• Wie funktioniert Cascading?

• Wie kann ich Cascading in mein BI-System integrieren?

Page 24: Cascading Big Data User Group

24

Cascading – Top Level Business Intelligence Wie integriere ich Cascading in meine Infrastruktur?

Cascading ist nur eine API die auf hadoop aufsetzt. Cascading-Jobs werden

wie hadoop-Jobs deployed und ausgeführt.

Quelle: http://www.cascading.org

Page 25: Cascading Big Data User Group

25

Cascading – Top Level Business Intelligence Wie kann ich meine Jobs entwerfen?

Quelle: http://www.cascading.org

Zur Implementierung von Cascading-Prozeduren gibt es diverse APIs.

Page 26: Cascading Big Data User Group

26

Cascading – Top Level Business Intelligence Literaturempfehlungen

Cascading Dokumentation

User Guide

http://docs.cascading.org/cascading/2.0/userguide/html/

Cascading for the impatient

http://www.cascading.org/2012/07/02/cascading-for-the-impatient-part-1/

http://www.cascading.org/2012/07/09/cascading-for-the-impatient-part-2/

http://www.cascading.org/2012/07/17/cascading-for-the-impatient-part-3/

http://www.cascading.org/2012/07/24/cascading-for-the-impatient-part-4/

http://www.cascading.org/2012/07/31/cascading-for-the-impatient-part-5/

http://www.cascading.org/2012/08/07/cascading-for-the-impatient-part-6/

Page 27: Cascading Big Data User Group

27

Cascading – Top Level Business Intelligence Schlussendlich

Für Fragen stehen wir Ihnen selbstverständlich zur Verfügung.

Jörg Schmidt

WidasConcepts GmbH

[email protected]

Dirk Bangel

WidasConcepts GmbH

[email protected]

This presentation was created by the Big Data User Group Stuttgart. Distribution, citation, copying - completely or in extracts – for transfer purposes, is only permitted with prior written agreement. These

abstracts and graphics were deployed by Big Data User Group Stuttgart within the scope of a presentation; it is no complete documentation of this event.