cascading big data user group
TRANSCRIPT
Herzlich willkommen
Stuttgart, den 30. August 2012
Cascading – Top Level Business Intelligence Wenn MapReduce zu “Low-Level” ist…
MapReduce – auch ganz ohne Paradigmenwechsel
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?
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
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!
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
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?
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
9
Cascading – Top Level Business Intelligence Was ist die Idee hinter MapReduce?
… oder dies.
Map
Key = Farbe
= 4
= 3
= 2
Aggregator = count
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
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
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
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!
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?
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
16
Cascading – Top Level Business Intelligence Eine typische Big Data Infrastruktur
Cascading ist, wie auch hadoop, ein Werkzeug für Batch-Processing.
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?
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.
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
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.
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.
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.
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?
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
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.
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/
27
Cascading – Top Level Business Intelligence Schlussendlich
Für Fragen stehen wir Ihnen selbstverständlich zur Verfügung.
Jörg Schmidt
WidasConcepts GmbH
Dirk Bangel
WidasConcepts GmbH
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.