Querdenken leicht gemacht! „Cascading“ bietet als alternatives Framework die Möglichkeit, MapReduce auch ohne Paradigmenwechsel in der Programmierung zu implementieren. Schnell, einfach, und intuitiv.
2. Cascading – Top Level Business Intelligence
Wenn MapReduce zu “Low-Level” ist…
MapReduce – auch ganz ohne Paradigmenwechsel
3. 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
4
5. Cascading – Top Level Business Intelligence
Wieso denn überhaupt “Big Data”?
Was haben wir hier?
Walter • konsistentes Objekt
• alle momentanen Attribute gespeichert
• klar definierte Struktur sichtbar
Alter: 25
Was passiert im Fall einer Änderung?
Wohnort:
Wimsheim Beispiel: Walter zieht nach Rutesheim um.
Rutesheim
Attribut „Wohnort“ wird mit dem neuen Wert
überschrieben
Mag: Äpfel
Information über Walters ehemaligen Wohnort
geht verloren!
5
6. Cascading – Top Level Business Intelligence
Wieso denn überhaupt “Big Data”?
Was können wir tun, um das zu verhindern?
Speichern unserer Daten als Transaktionen
(Event-Sourcing)
Walter
User Transactions
Walter ist geboren : 25.05.1987 Alter: 25
Walter wohnt in Wimsheim: Wohnort:
25.05.1987 Rutesheim
Walter mag Äpfel: 02.03.2010 Mag: Äpfel
Walter wohnt in Rutesheim: Zeitstempel:
07.07.2012 30.08.2012
6
7. 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…
Aggregator = count
Key = Form
Map =2
=3
=4
8
9. Cascading – Top Level Business Intelligence
Was ist die Idee hinter MapReduce?
… oder dies.
Aggregator = count
Key = Farbe
Map =4
=3
=2
9
11. Cascading – Top Level Business Intelligence
Wie lässt sich das auf unseren Anwendungsfall übertragen?
Sieht aus als bräuchten wir hier mehr als einen Map-Schritt.
geboren
"Aktion" : "geboren"
"Zeitstempel": 25.05.1987 "Zeitstempel": 25.05.1987
"Aktion": "wohnt in"
Walter
"Attribut" : „Wimsheim“
"Zeitstempel" : 25.05.1987 Key = Aktion
mag
"Attribut" : „Äpfel“
"Aktion" : "mag" Map "Zeitstempel" : 02.03.2012
"Attribut" : „Äpfel“
"Zeitstempel" : 02.03.2012
"Aktion" : "wohnt in" "Attribut" : „Wimsheim“
wohnt in
"Attribut" : „Rutesheim“ "Zeitstempel" : 23.05.1987
"Zeitstempel" : 07.07.2012
"Attribut" : „Rutesheim“
"Zeitstempel" : 07.07.2012
11
12. Cascading – Top Level Business Intelligence
Wie lässt sich das auf unseren Anwendungsfall übertragen?
Und schließlich das Reduce.
Walter
geboren
"Zeitstempel": 25.05.1987
Reduce
Alter: 25
"Attribut" : „Äpfel“ Wohnt in:
mag
"Zeitstempel" : 02.03.2012
Reduce Rutesheim
"Attribut" : „Wimsheim“ Mag: Äpfel
wohnt in
"Zeitstempel" : 25.05.1987
"Attribut" : „Rutesheim“
"Zeitstempel" : 07.07.2012 Reduce Zeitstempel: jetzt
12
13. Cascading – Top Level Business Intelligence
Wie lässt sich das auf unseren Anwendungsfall übertragen?
Das bringt uns ein paar großartige Vorteile!
• 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
13
14. 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
15
16. Cascading – Top Level Business Intelligence
Eine typische Big Data Infrastruktur
Cascading ist, wie auch hadoop, ein Werkzeug für Batch-Processing. 16
17. 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.
18
19. Cascading – Top Level Business Intelligence
Eine typische Cascading Job-Architektur
Cascade
Flow
DB SourceTap SinkTap DB
(Source) (Sink)
Assembly
Tuples Tuples
Pipe Pipe Pipe
(data) (data)
Quellstruktur Zielstruktur
19
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.
20
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.
21
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.
22
23. 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
24
25. Cascading – Top Level Business Intelligence
Wie kann ich meine Jobs entwerfen?
Zur Implementierung von Cascading-Prozeduren gibt es diverse APIs.
Quelle: http://www.cascading.org
25
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/
26
27. Cascading – Top Level Business Intelligence
Schlussendlich
Für Fragen stehen wir Ihnen selbstverständlich zur Verfügung.
Jörg Schmidt
WidasConcepts GmbH
joerg.schmidt@widas.de
Dirk Bangel
WidasConcepts GmbH
dirk.bangel@widas.de
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. 27