• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cascading Big Data User Group
 

Cascading Big Data User Group

on

  • 412 views

Querdenken leicht gemacht! „Cascading“ bietet als alternatives Framework die Möglichkeit, MapReduce auch ohne Paradigmenwechsel in der Programmierung zu implementieren. Schnell, einfach, und ...

Querdenken leicht gemacht! „Cascading“ bietet als alternatives Framework die Möglichkeit, MapReduce auch ohne Paradigmenwechsel in der Programmierung zu implementieren. Schnell, einfach, und intuitiv.

Statistics

Views

Total Views
412
Views on SlideShare
356
Embed Views
56

Actions

Likes
1
Downloads
4
Comments
0

4 Embeds 56

http://www.bigdatausergroup.de 49
http://www.hadoopusergroup.de 4
http://bigdatausergroup.de 2
http://www.bigdatausergroup.org 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cascading Big Data User Group Cascading Big Data User Group Presentation Transcript

    • HerzlichwillkommenStuttgart, den 30. August 2012
    • Cascading – Top Level Business Intelligence Wenn MapReduce zu “Low-Level” ist…MapReduce – auch ganz ohne Paradigmenwechsel
    • Cascading – Top Level Business IntelligenceAgenda • 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?
    • 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
    • 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 überschriebenMag: Äpfel Information über Walters ehemaligen Wohnort geht verloren! 5
    • 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) WalterUser 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
    • Cascading – Top Level Business IntelligenceAgenda • 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?
    • 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
    • Cascading – Top Level Business IntelligenceWas ist die Idee hinter MapReduce? … oder dies. Aggregator = count Key = Farbe Map =4 =3 =2 9
    • Cascading – Top Level Business Intelligence Wie lässt sich das auf unseren Anwendungsfall übertragen? "Benutzer" : "Walter" "Benutzer" : "Walter" "Aktion" : "geboren" "Aktion" : "geboren" "Zeitstempel": 25.05.1987 "Zeitstempel": 25.05.1987 "Benutzer" : "Walter" "Benutzer" : "Susanne" "Aktion": "wohnt in" WalterUser transactions "Aktion" : "geboren" "Attribut" : „Wimsheim“ "Zeitstempel" : 29.05.1980 "Zeitstempel" : 23.05.1987 "Benutzer" : "Walter" "Benutzer" : "Walter" "Aktion": "wohnt in" "Aktion" : "mag" "Attribut" : „Wimsheim“ "Attribut" : „Äpfel“ "Zeitstempel" : 25.05.1987 "Zeitstempel" : 02.03.2012 Key = Benutzer "Benutzer" : "Walter" "Benutzer" : "Walter" "Aktion" : "wohnt in" "Aktion" : "mag" "Attribut" : „Rutesheim“ "Attribut" : „Äpfel“ "Zeitstempel" : 02.03.2012 Map "Zeitstempel" : 07.07.2012 "Benutzer" : "Susanne" "Benutzer" : "Susanne" Susanne "Aktion" : "mag" "Aktion" : "geboren" "Attribut" : „Chicken Nuggets“ "Zeitstempel" : 29.05.1980 "Zeitstempel" : 01.04.2009 "Benutzer" : "Susanne" "Benutzer" : "Walter" "Aktion" : "mag" "Aktion" : "wohnt in" "Attribut" : „Chicken Nuggets“ "Attribut" : „Rutesheim“ "Zeitstempel" : 01.04.2009 "Zeitstempel" : 07.07.2012 10
    • 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
    • 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
    • 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
    • Cascading – Top Level Business IntelligenceAgenda • 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?
    • 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 fordefining, sharing, and executing data-processing workflows on a singlecomputing node or distributed computing cluster.” – http://www.cascading.orgDie 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
    • Cascading – Top Level Business Intelligence Eine typische Big Data InfrastrukturCascading ist, wie auch hadoop, ein Werkzeug für Batch-Processing. 16
    • Cascading – Top Level Business IntelligenceAgenda • 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?
    • Cascading – Top Level Business Intelligence TerminologiePipe 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. DatensenkeScheme 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
    • 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
    • Cascading – Top Level Business Intelligence Verschiedene TapsCascading 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 Tapimplementiert werden. 20
    • Cascading – Top Level Business Intelligence Verschiedene Tap-SchemataEin Scheme gibt die Art und Weise an, wie Daten in einen Tap geschriebenwerden. Bei einer eigenen Tap-Implementierung muss also meist auch eineigenes Scheme definiert werden. Ein paar Basis-Schemes bringt Cascadingvon 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
    • Cascading – Top Level Business Intelligence Die verschiedenen Pipe-TypenEach 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
    • Cascading – Top Level Business IntelligenceAgenda • 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?
    • Cascading – Top Level Business Intelligence Wie integriere ich Cascading in meine Infrastruktur?Cascading ist nur eine API die auf hadoop aufsetzt. Cascading-Jobs werdenwie hadoop-Jobs deployed und ausgeführt. Quelle: http://www.cascading.org 24
    • 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
    • Cascading – Top Level Business Intelligence LiteraturempfehlungenCascading DokumentationUser Guidehttp://docs.cascading.org/cascading/2.0/userguide/html/Cascading for the impatienthttp://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
    • 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.deThis 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. Theseabstracts 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