SlideShare ist ein Scribd-Unternehmen logo
Schweine-Latein
Big Data Verarbeitung mit Apache Pig

  FrOSCon 7 - 25. August 2012
          Von Ramon Wartala
Ramon Wartala
• Diplom Informatiker
• Director Technology bei der Online Marketing
  Agentur Performance Media GmbH in Hamburg
• freier Autor zum Thema Software Entwicklung
  und Daten Analyse
• Cloudera Certified Administrator for Apache
  Hadoop (CCAH)
• Hadoop Trainer und Speaker



EMail: ramon.wartala@performance-media.de
Twitter: @rawar
Xing: https://www.xing.com/profile/Ramon_Wartala
Buch: https://www.opensourcepress.de/index.php?26&backPID=15&tt_products=343
Ein paar Worte zu Hadoop

•   Antwort auf die Frage: Wie lassen sich große Datenmengen skalierbar
    verarbeiten?

•   Prinzip: Teile und Herrsche ☞ Viele Disks, viele Kerne, RAM, große
    Dateiblöcke

•   Google Filesystem * + Google MapReduce ** (closed source)

•   Ausfallsicher durch Datenredundanz (in der Regel 3x)

•   Hadoop ist Open Source Implementierung von GFS / MapReduce in
    Java

•   Verteiltes Dateisystem + MapReduce-Framework unter Apache Lizenz

    * http://research.google.com/archive/gfs.html
    **http://research.google.com/archive/mapreduce.html
Hadoop Architektur
Was bringt MapReduce?




Quelle: http://map-reduce.wikispaces.asu.edu/file/view/figure5_(1).png/159615807/
                                 figure5_(1).png
Map Phase                Shuffle Phase                 Reduce Phase


cat /var/www/log/access.log | grep `.html` | sort | uniq -c > /home/rwartala/all-htmls.out
Was bringt MapReduce?

✓ Verteilung von Aufgaben über Rechnergrenzen hinweg
✓ Drei Phasen Modell: Map, Shuffle/Sort, Reduce
✓ Mapper-Tasks arbeitet auf einzelnen Daten-Records
✓ Reducer-Tasks aggregieren Ergebnisse der Mapper-Tasks
- In Hadoop: Mapper und Reducer werden in Java implementiert
- Implementierung muss in Map und Reduce „gedacht“ werden
- Komplizierte Analysen müssen „zu Fuß“ entwickelt werden
➡ Zu viel Java-Code!
Hadoop hello world! -
              wordcount
 •   Programm liest Textdatei ein

 •   Programm extrahiert für jede Zeile des Textes die darin enthaltenen
     Wörter

 •   Für alle Wörter wird deren Vorkommen bestimmt:


„Vorwärts, rief Kapitän Hod, den Hut schwenkend, Stahlriese, vorwärts!“



                         vorwärts ➜ 2
                         rief ➜ 1
                         Kapitän ➜ 1
                         den ➜ 1
                         Hut ➜ 1
                         schwenkend ➜ 1
                         Stahlriese ➜ 1
Quelle: http://wiki.apache.org/hadoop/WordCount
Wobei hilft Pig?

•   Ermöglicht die einfache Analyse großer Datensätze

•   Pig Latin bietet Sprachumfang um komplexe Abfragen mit wenigen
    Zeilen Code zu implementiert

•   Pig führt Pig Latin Skripte aus und erzeugt daraus eine Folge von
    Mappern und Reducern für Hadoop

•   Implementierungsaufwand gegenüber nativen MapReduce-
    Anwendungen deutlich reduziert

•   Auch von Datenanalysten nutzbar (!= Java Entwickler)
Der Beweis:
63 Zeilen Java-Code
         vs.
 5 Zeilen Pig Latin
Pigs Geschichte

         •     Pig wurde als Projekt bei Yahoo! Research gestartet

         •     Vorgestellt wurde die Arbeit* auf der SIGMOD 2008**

         •     Ziel von Pig die Nutzung von MapReduce zu vereinfachen

         •     Pig Latin als „SQL für MapReduce“

         •     „Schnelle und schmutziges“ Datenverarbeitung

         •     Apache Projekt und Teil des Hadoop Ökosystems



* http://infolab.stanford.edu/~usriv/papers/pig-latin.pdf
** http://www.sigmod08.org/
Wer nutzt Pig?




Quelle: https://cwiki.apache.org/confluence/display/PIG/PoweredBy
Was hat das mit
Schweine-Latein zu tun?
Pigs Philosophie*


•    Pigs eat anything (mit oder ohne Datenschema)

•    Pigs live anywhere (unterstützt die parallele Datenverarbeitung, aber
     nicht ausschliesslich)

•    Pigs are domestic animals (sollen dem Nutzer helfen)

•    Pigs fly (Pig verarbeitet Daten sehr schnell)




    * http://pig.apache.org/philosophy.html
eat anything: Schema

•   data = LOAD Dateiname USING Loader AS Schema;

•   data = LOAD Dateiname;

•   Pig geht von TSV-Dateien aus

•   Schema-Position ($0 ... $N)

•   Ohne Datentypen = alle Felder vom Typ bytearray

•   PigStorage(), TextLoader(), ...

•   Datei-Globs
eat anything: Datenformate

•   Schema/Teil-Schema/Kein-Schema

•   CSV/TSV/Texte

•   HCatLoader/HCatStorer

•   AvroStorage

•   HBaseStorage

•   HiveColumnarLoader aus /usr/lib/pig/contrib/piggybank/java/
    piggybank.jar ➜ RCFile (http://en.wikipedia.org/wiki/RCFile)

•   Eigen Loader implementieren (http://pig.apache.org/docs/r0.9.2/
Eingabe / Ausgabe
         •   LOAD liest Daten
             mit Hilfe von
             Loadern
             TextLoader(),
             PigStorage()


         •   STORE speichert
             Daten


         •   DUMP gibt Daten
             in die
             Standardausgabe


         •   STREAM sendet
             die Daten an
             externe
             Anwendung

Copyright by Matti Mattila under CC http://www.flickr.com/photos/mattimattila/
live anywhere: Pig
                  ausführen

•   Keine Server-/Cluster-Installation (Pig ist Hadoop-Client)

•   Pig Version muss Hadoop Version unterstützen (0.20, 1.0 etc.)

•   Lokales (Datei-)System: pig -x local grunzen.pig

•   Hadoop (Datei-)System: pig -x mapreduce grunzen.pig

•   grunt>

•   import org.apache.pig.PigServer;
Pig Datenmodell
•   skalare und komplexe Typen        •   keine Variablen, nur
                                          Relationen
•   skalare Typen: int, long, float,
    double, chararray (Strings),      •   Pig Relationen sind immer
    bytearray (Bytes),                    bags von tuples


•   komplexe Typen: map (key/         •   Relationen heißen in
    values), tuple (Listen), bag          Pig Latin ,Alias‘
    (Liste aus Listen)
                                      •   Pig Befehle sind nicht Case-
•   Schema ist Definition von              sensitiv, Relation schon
    skalaren und komplexen
    Datentypen (ähnlich einer
    Tabelle in RDBS)
                                      •   Pig kann Hadoop-
                                          Dateibefehle ausführen
Komplexe Datentypen

•   tuple - Reihe von Skalaren unterschiedlichen Types:

      ('FrOSCon', 7, '25', 8, 2012)

•   bag - Ungeordnete Liste von tuples:

      {('FrOSCon,7,'25.08.2012'),('Schweine-Latein',11,15)}

•   map - Schlüssel-/Wertepaare. Schlüssel muss vom Typ chararray sein.
    Werte können beliebige Skalare sein:

      ['25.08.2012'#'FrOSCon 7']
Pigs Relationale
                 Operationen
•   FOREACH        •   LIMIT      •   ILLUSTRATE


•   FILTER         •   SAMPLE     •   SPLIT


•   GROUP          •   CROSS      •   DUMP


•   ORDER BY       •   UNION      •   REGISTER


•   DISTINCT       •   DESCRIBE   •   ...


•   JOIN           •   EXPLAIN
Beispiele: Relationale
         Operationen
FOREACH transformiert die
Daten spaltenweise ähnlich
SELECT von SQL

FILTER reduziert die
Datenmenge über
Bedingungen

ORDER BY sortiert Daten




DISTINCT filtert doppelte
Datensätze
Beispiele: Relationale
         Operationen
JOIN vereinigung
zweier Relationen mit
gleichen Schlüssel (-
Werten)

UNION führt zwei oder
mehr Relationen
zusammen

CROSS erzeugt
kartesisches Produkt
zweier Relationen
Verschiedene JOINs

•   JOIN (Left, Outer etc.)

•   USING 'merge'➜ Merge Join
    nützlich wenn Eingabedaten
    bereits sortiert

•   USING 'skewed'➜ Join bei
    unterschiedlich vielen Keys

•   using 'replicated'➜Fragment-
    Replicated Join ➜ die zu joinenden
    Daten werden im Speicher der
    Mapper-Phase gehalten ➜ keine
    Reducer-Phase
Pigs Ausführung lässt sich
           analysieren

•   Pig erzeugt eigene Mapper und Reducer

•   EXPLAIN alias; oder pig -e "explain -script wordcount.pig"

•   ILLUSTRATE alias; ☞ zeigt die einzelnen Schritte der Verarbeitung von
    alias auf

•   DESCRIBE alias; ☞ zeigt Typ der Relation an


•   DUMP alias; ☞ gibt Inhalt der Relation aus
Testing und Diagnose



•    Unit Tests mit PigUnit (http://pig.apache.org/docs/r0.9.2/
     test.html#pigunit)

•    Penny - Monitoring und Debugging (https://cwiki.apache.org/confluence/
     display/PIG/PennyToolLibrary)




    Bild von http://www.flickr.com/photos/judo10/4108776118/in/photostream
Einbetten
•   Pig kann in alle gängigen
    „Java-resken“ Sprachen
    eingebettet werten: JRuby,
    Jython, Rhino etc.


•   Vorteil: Benutzerdefinierte
    Funktionen lassen sich
    einfacher implementieren


•   Schleifen können einfacher
    realisiert werden


•   Einfachere Parameter-
    Behandlung
Benutzer Definierte
                   Funktionen
•       User Defined Functions (http://wiki.apache.org/pig/UDFManual)

•       PiggyBank.jar (https://cwiki.apache.org/PIG/piggybank.html)

•       DataFu von LinkedIn (https://github.com/linkedin/datafu):

    -     PageRank

    -     Statistische Funktionen wie Quantile, Varianz etc.
    -     Geo-Distanz-Bestimmung

•       Elephant-Bird von Twitter (https://github.com/kevinweil/elephant-bird)
    -     Lzo-, Protobuffer- JSON-, HBase-Loader
Nutzung in der Cloud

        •   Apache Pig Nutzung innerhalb von Amazon Elastic Map Reduce
            möglich

        •   AMI Version 2.2.0 (Stand 6.8.2012): Hadoop 1.0.3 und Pig 0.9.2.2*




* http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/
EnvironmentConfig_AMIVersion.html#ami-versions-supported
Typische Anwendungsfälle

•   ETL

•   Daten-Pipeline (Sortierung, Filterung, Aggregation)

•   Logdatei-Analysen

•   Click-Pfad-Analysen

•   Clickfraud-Analysen

•   Multikanal-Analysen
ETL-Prozess
Fragen?
Quellen
• Mailinglisten
    http://pig.apache.org/mailing_lists.html

• Webseiten
    http://pig.apache.org/

    http://pig.apache.org/docs/r0.9.2/

• Artikel
    http://www.ibm.com/developerworks/linux/library/l-apachepigdataquery/

    http://www.slideshare.net/AdamKawa/apache-pig-at-whug

    http://www.cloudera.com/wp-content/uploads/2010/01/IntroToPig.pdf

• Bücher: Programming Pig von Alan Gates

Weitere ähnliche Inhalte

Andere mochten auch

Ansprechend! Braucht face2face Fundraising Standards?
Ansprechend! Braucht face2face Fundraising Standards?Ansprechend! Braucht face2face Fundraising Standards?
Ansprechend! Braucht face2face Fundraising Standards?
Socialbar
 
Abschluss (Negativbeispiel)
Abschluss (Negativbeispiel)Abschluss (Negativbeispiel)
Abschluss (Negativbeispiel)Martin Friedel
 
Betacodex2010 06-14
Betacodex2010 06-14Betacodex2010 06-14
Betacodex2010 06-14
Gebhard Borck
 
Stanzel ErzäHlerfigur In Th Manns Tristan
Stanzel ErzäHlerfigur In Th Manns TristanStanzel ErzäHlerfigur In Th Manns Tristan
Stanzel ErzäHlerfigur In Th Manns TristanJoerg Hartmann
 
Buster
BusterBuster
Buster
cansweigart
 
Google über alles? Wissenschaftssuchmaschinen als alternativer Weg zu releva...
Google über alles?  Wissenschaftssuchmaschinen als alternativer Weg zu releva...Google über alles?  Wissenschaftssuchmaschinen als alternativer Weg zu releva...
Google über alles? Wissenschaftssuchmaschinen als alternativer Weg zu releva...
hubert3
 
Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...
Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...
Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...
Gebhard Borck
 
091204 Vhs Literaturgeschichte I Antike
091204 Vhs  Literaturgeschichte  I  Antike091204 Vhs  Literaturgeschichte  I  Antike
091204 Vhs Literaturgeschichte I AntikeJoerg Hartmann
 
Zivilgesellschaftliche Organisationen und Social Media: Drängendste Fragen z...
Zivilgesellschaftliche Organisationen und Social Media:  Drängendste Fragen z...Zivilgesellschaftliche Organisationen und Social Media:  Drängendste Fragen z...
Zivilgesellschaftliche Organisationen und Social Media: Drängendste Fragen z...
Socialbar
 
Die Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentationDie Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentationJoerg Hartmann
 
Bebeu
BebeuBebeu
Bebeu
vivilunga
 
Neue Medien Tools
Neue Medien ToolsNeue Medien Tools
Neue Medien Toolsklein_mano
 
Ziel!ziel
Ziel!zielZiel!ziel
Ziel!ziel
Stephan List
 
Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...
Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...
Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...
Alhambra Instituto
 
ARBRES PRECIOSOS
ARBRES PRECIOSOSARBRES PRECIOSOS
ARBRES PRECIOSOS
jordipamplona
 
Redewiedergabe Erzähltextanalyse Lahn,Meister
Redewiedergabe Erzähltextanalyse Lahn,MeisterRedewiedergabe Erzähltextanalyse Lahn,Meister
Redewiedergabe Erzähltextanalyse Lahn,MeisterJoerg Hartmann
 
Social bar migranten und (online ) partizipation
Social bar migranten und (online ) partizipationSocial bar migranten und (online ) partizipation
Social bar migranten und (online ) partizipationSocialbar
 
Ic 2010-panel-pres-jantschgi
Ic 2010-panel-pres-jantschgiIc 2010-panel-pres-jantschgi
Ic 2010-panel-pres-jantschgiRobert Ponta
 
Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...
Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...
Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...
Gebhard Borck
 

Andere mochten auch (20)

Ansprechend! Braucht face2face Fundraising Standards?
Ansprechend! Braucht face2face Fundraising Standards?Ansprechend! Braucht face2face Fundraising Standards?
Ansprechend! Braucht face2face Fundraising Standards?
 
Abschluss (Negativbeispiel)
Abschluss (Negativbeispiel)Abschluss (Negativbeispiel)
Abschluss (Negativbeispiel)
 
Sanvalentin2
Sanvalentin2Sanvalentin2
Sanvalentin2
 
Betacodex2010 06-14
Betacodex2010 06-14Betacodex2010 06-14
Betacodex2010 06-14
 
Stanzel ErzäHlerfigur In Th Manns Tristan
Stanzel ErzäHlerfigur In Th Manns TristanStanzel ErzäHlerfigur In Th Manns Tristan
Stanzel ErzäHlerfigur In Th Manns Tristan
 
Buster
BusterBuster
Buster
 
Google über alles? Wissenschaftssuchmaschinen als alternativer Weg zu releva...
Google über alles?  Wissenschaftssuchmaschinen als alternativer Weg zu releva...Google über alles?  Wissenschaftssuchmaschinen als alternativer Weg zu releva...
Google über alles? Wissenschaftssuchmaschinen als alternativer Weg zu releva...
 
Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...
Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...
Keynote (DE): Beyond Budgeting Transformation, at Winterheller Performance Ma...
 
091204 Vhs Literaturgeschichte I Antike
091204 Vhs  Literaturgeschichte  I  Antike091204 Vhs  Literaturgeschichte  I  Antike
091204 Vhs Literaturgeschichte I Antike
 
Zivilgesellschaftliche Organisationen und Social Media: Drängendste Fragen z...
Zivilgesellschaftliche Organisationen und Social Media:  Drängendste Fragen z...Zivilgesellschaftliche Organisationen und Social Media:  Drängendste Fragen z...
Zivilgesellschaftliche Organisationen und Social Media: Drängendste Fragen z...
 
Die Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentationDie Geschichten Des Nobelpreises PräSentation
Die Geschichten Des Nobelpreises PräSentation
 
Bebeu
BebeuBebeu
Bebeu
 
Neue Medien Tools
Neue Medien ToolsNeue Medien Tools
Neue Medien Tools
 
Ziel!ziel
Ziel!zielZiel!ziel
Ziel!ziel
 
Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...
Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...
Spanisch Sprachkurse Sprachaufenthalt Spanisch lernen Sprachreisen Spanien Sp...
 
ARBRES PRECIOSOS
ARBRES PRECIOSOSARBRES PRECIOSOS
ARBRES PRECIOSOS
 
Redewiedergabe Erzähltextanalyse Lahn,Meister
Redewiedergabe Erzähltextanalyse Lahn,MeisterRedewiedergabe Erzähltextanalyse Lahn,Meister
Redewiedergabe Erzähltextanalyse Lahn,Meister
 
Social bar migranten und (online ) partizipation
Social bar migranten und (online ) partizipationSocial bar migranten und (online ) partizipation
Social bar migranten und (online ) partizipation
 
Ic 2010-panel-pres-jantschgi
Ic 2010-panel-pres-jantschgiIc 2010-panel-pres-jantschgi
Ic 2010-panel-pres-jantschgi
 
Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...
Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...
Keynote (DE): Warum Management verzichtbar ist - Der Kodex, Wissensforum 2010...
 

Ähnlich wie Schweine latein-vortrag

SCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare LangzeitarchivierungSCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare Langzeitarchivierung
Sven Schlarb
 
BI mit Apache Hadoop (CDH)
BI mit Apache Hadoop (CDH)BI mit Apache Hadoop (CDH)
BI mit Apache Hadoop (CDH)Alexander Alten
 
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE Project
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
Icinga
 
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSiebenFusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
inovex GmbH
 
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
inovex GmbH
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
KurtStockinger
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
Gunther Pippèrr
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBMario Müller
 
Hadoop Einführung @codecentric
Hadoop Einführung @codecentricHadoop Einführung @codecentric
Hadoop Einführung @codecentric
imalik8088
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershellCreasoft AG
 
Big Data mit Apache Hadoop
Big Data mit Apache HadoopBig Data mit Apache Hadoop
Big Data mit Apache HadoopAlexander Alten
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
Karin Patenge
 
Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und HadoopTextanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoop
inovex GmbH
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Andreas Jung
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Peter Löwe
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
Josef Adersberger
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
QAware GmbH
 
The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connectioninovex GmbH
 

Ähnlich wie Schweine latein-vortrag (20)

SCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare LangzeitarchivierungSCAPE Skalierbare Langzeitarchivierung
SCAPE Skalierbare Langzeitarchivierung
 
BI mit Apache Hadoop (CDH)
BI mit Apache Hadoop (CDH)BI mit Apache Hadoop (CDH)
BI mit Apache Hadoop (CDH)
 
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
SCAPE - Skalierbare Langzeitarchivierung (SCAPE - scalable longterm digital p...
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSiebenFusion der Welten: Hadoop als DWH-Backend bei ProSieben
Fusion der Welten: Hadoop als DWH-Backend bei ProSieben
 
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
Wer gewinnt das SQL-Rennen auf der Hadoop-Strecke?
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDB
 
Hadoop Einführung @codecentric
Hadoop Einführung @codecentricHadoop Einführung @codecentric
Hadoop Einführung @codecentric
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
 
Big Data mit Apache Hadoop
Big Data mit Apache HadoopBig Data mit Apache Hadoop
Big Data mit Apache Hadoop
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
Textanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und HadoopTextanalyse mit UIMA und Hadoop
Textanalyse mit UIMA und Hadoop
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connection
 

Schweine latein-vortrag

  • 1. Schweine-Latein Big Data Verarbeitung mit Apache Pig FrOSCon 7 - 25. August 2012 Von Ramon Wartala
  • 2. Ramon Wartala • Diplom Informatiker • Director Technology bei der Online Marketing Agentur Performance Media GmbH in Hamburg • freier Autor zum Thema Software Entwicklung und Daten Analyse • Cloudera Certified Administrator for Apache Hadoop (CCAH) • Hadoop Trainer und Speaker EMail: ramon.wartala@performance-media.de Twitter: @rawar Xing: https://www.xing.com/profile/Ramon_Wartala Buch: https://www.opensourcepress.de/index.php?26&backPID=15&tt_products=343
  • 3. Ein paar Worte zu Hadoop • Antwort auf die Frage: Wie lassen sich große Datenmengen skalierbar verarbeiten? • Prinzip: Teile und Herrsche ☞ Viele Disks, viele Kerne, RAM, große Dateiblöcke • Google Filesystem * + Google MapReduce ** (closed source) • Ausfallsicher durch Datenredundanz (in der Regel 3x) • Hadoop ist Open Source Implementierung von GFS / MapReduce in Java • Verteiltes Dateisystem + MapReduce-Framework unter Apache Lizenz * http://research.google.com/archive/gfs.html **http://research.google.com/archive/mapreduce.html
  • 5. Was bringt MapReduce? Quelle: http://map-reduce.wikispaces.asu.edu/file/view/figure5_(1).png/159615807/ figure5_(1).png
  • 6. Map Phase Shuffle Phase Reduce Phase cat /var/www/log/access.log | grep `.html` | sort | uniq -c > /home/rwartala/all-htmls.out
  • 7. Was bringt MapReduce? ✓ Verteilung von Aufgaben über Rechnergrenzen hinweg ✓ Drei Phasen Modell: Map, Shuffle/Sort, Reduce ✓ Mapper-Tasks arbeitet auf einzelnen Daten-Records ✓ Reducer-Tasks aggregieren Ergebnisse der Mapper-Tasks - In Hadoop: Mapper und Reducer werden in Java implementiert - Implementierung muss in Map und Reduce „gedacht“ werden - Komplizierte Analysen müssen „zu Fuß“ entwickelt werden ➡ Zu viel Java-Code!
  • 8. Hadoop hello world! - wordcount • Programm liest Textdatei ein • Programm extrahiert für jede Zeile des Textes die darin enthaltenen Wörter • Für alle Wörter wird deren Vorkommen bestimmt: „Vorwärts, rief Kapitän Hod, den Hut schwenkend, Stahlriese, vorwärts!“ vorwärts ➜ 2 rief ➜ 1 Kapitän ➜ 1 den ➜ 1 Hut ➜ 1 schwenkend ➜ 1 Stahlriese ➜ 1
  • 10. Wobei hilft Pig? • Ermöglicht die einfache Analyse großer Datensätze • Pig Latin bietet Sprachumfang um komplexe Abfragen mit wenigen Zeilen Code zu implementiert • Pig führt Pig Latin Skripte aus und erzeugt daraus eine Folge von Mappern und Reducern für Hadoop • Implementierungsaufwand gegenüber nativen MapReduce- Anwendungen deutlich reduziert • Auch von Datenanalysten nutzbar (!= Java Entwickler)
  • 11. Der Beweis: 63 Zeilen Java-Code vs. 5 Zeilen Pig Latin
  • 12. Pigs Geschichte • Pig wurde als Projekt bei Yahoo! Research gestartet • Vorgestellt wurde die Arbeit* auf der SIGMOD 2008** • Ziel von Pig die Nutzung von MapReduce zu vereinfachen • Pig Latin als „SQL für MapReduce“ • „Schnelle und schmutziges“ Datenverarbeitung • Apache Projekt und Teil des Hadoop Ökosystems * http://infolab.stanford.edu/~usriv/papers/pig-latin.pdf ** http://www.sigmod08.org/
  • 13. Wer nutzt Pig? Quelle: https://cwiki.apache.org/confluence/display/PIG/PoweredBy
  • 14. Was hat das mit Schweine-Latein zu tun?
  • 15. Pigs Philosophie* • Pigs eat anything (mit oder ohne Datenschema) • Pigs live anywhere (unterstützt die parallele Datenverarbeitung, aber nicht ausschliesslich) • Pigs are domestic animals (sollen dem Nutzer helfen) • Pigs fly (Pig verarbeitet Daten sehr schnell) * http://pig.apache.org/philosophy.html
  • 16. eat anything: Schema • data = LOAD Dateiname USING Loader AS Schema; • data = LOAD Dateiname; • Pig geht von TSV-Dateien aus • Schema-Position ($0 ... $N) • Ohne Datentypen = alle Felder vom Typ bytearray • PigStorage(), TextLoader(), ... • Datei-Globs
  • 17. eat anything: Datenformate • Schema/Teil-Schema/Kein-Schema • CSV/TSV/Texte • HCatLoader/HCatStorer • AvroStorage • HBaseStorage • HiveColumnarLoader aus /usr/lib/pig/contrib/piggybank/java/ piggybank.jar ➜ RCFile (http://en.wikipedia.org/wiki/RCFile) • Eigen Loader implementieren (http://pig.apache.org/docs/r0.9.2/
  • 18. Eingabe / Ausgabe • LOAD liest Daten mit Hilfe von Loadern TextLoader(), PigStorage() • STORE speichert Daten • DUMP gibt Daten in die Standardausgabe • STREAM sendet die Daten an externe Anwendung Copyright by Matti Mattila under CC http://www.flickr.com/photos/mattimattila/
  • 19. live anywhere: Pig ausführen • Keine Server-/Cluster-Installation (Pig ist Hadoop-Client) • Pig Version muss Hadoop Version unterstützen (0.20, 1.0 etc.) • Lokales (Datei-)System: pig -x local grunzen.pig • Hadoop (Datei-)System: pig -x mapreduce grunzen.pig • grunt> • import org.apache.pig.PigServer;
  • 20. Pig Datenmodell • skalare und komplexe Typen • keine Variablen, nur Relationen • skalare Typen: int, long, float, double, chararray (Strings), • Pig Relationen sind immer bytearray (Bytes), bags von tuples • komplexe Typen: map (key/ • Relationen heißen in values), tuple (Listen), bag Pig Latin ,Alias‘ (Liste aus Listen) • Pig Befehle sind nicht Case- • Schema ist Definition von sensitiv, Relation schon skalaren und komplexen Datentypen (ähnlich einer Tabelle in RDBS) • Pig kann Hadoop- Dateibefehle ausführen
  • 21. Komplexe Datentypen • tuple - Reihe von Skalaren unterschiedlichen Types: ('FrOSCon', 7, '25', 8, 2012) • bag - Ungeordnete Liste von tuples: {('FrOSCon,7,'25.08.2012'),('Schweine-Latein',11,15)} • map - Schlüssel-/Wertepaare. Schlüssel muss vom Typ chararray sein. Werte können beliebige Skalare sein: ['25.08.2012'#'FrOSCon 7']
  • 22. Pigs Relationale Operationen • FOREACH • LIMIT • ILLUSTRATE • FILTER • SAMPLE • SPLIT • GROUP • CROSS • DUMP • ORDER BY • UNION • REGISTER • DISTINCT • DESCRIBE • ... • JOIN • EXPLAIN
  • 23. Beispiele: Relationale Operationen FOREACH transformiert die Daten spaltenweise ähnlich SELECT von SQL FILTER reduziert die Datenmenge über Bedingungen ORDER BY sortiert Daten DISTINCT filtert doppelte Datensätze
  • 24. Beispiele: Relationale Operationen JOIN vereinigung zweier Relationen mit gleichen Schlüssel (- Werten) UNION führt zwei oder mehr Relationen zusammen CROSS erzeugt kartesisches Produkt zweier Relationen
  • 25. Verschiedene JOINs • JOIN (Left, Outer etc.) • USING 'merge'➜ Merge Join nützlich wenn Eingabedaten bereits sortiert • USING 'skewed'➜ Join bei unterschiedlich vielen Keys • using 'replicated'➜Fragment- Replicated Join ➜ die zu joinenden Daten werden im Speicher der Mapper-Phase gehalten ➜ keine Reducer-Phase
  • 26. Pigs Ausführung lässt sich analysieren • Pig erzeugt eigene Mapper und Reducer • EXPLAIN alias; oder pig -e "explain -script wordcount.pig" • ILLUSTRATE alias; ☞ zeigt die einzelnen Schritte der Verarbeitung von alias auf • DESCRIBE alias; ☞ zeigt Typ der Relation an • DUMP alias; ☞ gibt Inhalt der Relation aus
  • 27.
  • 28. Testing und Diagnose • Unit Tests mit PigUnit (http://pig.apache.org/docs/r0.9.2/ test.html#pigunit) • Penny - Monitoring und Debugging (https://cwiki.apache.org/confluence/ display/PIG/PennyToolLibrary) Bild von http://www.flickr.com/photos/judo10/4108776118/in/photostream
  • 29. Einbetten • Pig kann in alle gängigen „Java-resken“ Sprachen eingebettet werten: JRuby, Jython, Rhino etc. • Vorteil: Benutzerdefinierte Funktionen lassen sich einfacher implementieren • Schleifen können einfacher realisiert werden • Einfachere Parameter- Behandlung
  • 30. Benutzer Definierte Funktionen • User Defined Functions (http://wiki.apache.org/pig/UDFManual) • PiggyBank.jar (https://cwiki.apache.org/PIG/piggybank.html) • DataFu von LinkedIn (https://github.com/linkedin/datafu): - PageRank - Statistische Funktionen wie Quantile, Varianz etc. - Geo-Distanz-Bestimmung • Elephant-Bird von Twitter (https://github.com/kevinweil/elephant-bird) - Lzo-, Protobuffer- JSON-, HBase-Loader
  • 31. Nutzung in der Cloud • Apache Pig Nutzung innerhalb von Amazon Elastic Map Reduce möglich • AMI Version 2.2.0 (Stand 6.8.2012): Hadoop 1.0.3 und Pig 0.9.2.2* * http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/ EnvironmentConfig_AMIVersion.html#ami-versions-supported
  • 32. Typische Anwendungsfälle • ETL • Daten-Pipeline (Sortierung, Filterung, Aggregation) • Logdatei-Analysen • Click-Pfad-Analysen • Clickfraud-Analysen • Multikanal-Analysen
  • 35. Quellen • Mailinglisten http://pig.apache.org/mailing_lists.html • Webseiten http://pig.apache.org/ http://pig.apache.org/docs/r0.9.2/ • Artikel http://www.ibm.com/developerworks/linux/library/l-apachepigdataquery/ http://www.slideshare.net/AdamKawa/apache-pig-at-whug http://www.cloudera.com/wp-content/uploads/2010/01/IntroToPig.pdf • Bücher: Programming Pig von Alan Gates