datenanalyse mit hadoop
play

Datenanalyse mit Hadoop Quelle: Apache Software Foundation - PowerPoint PPT Presentation

Gideon Zenz Frankfurter Entwicklertag 2014 19.02.2014 Datenanalyse mit Hadoop Quelle: Apache Software Foundation Datenanalyse mit Hadoop Gideon Zenz Frankfurter Entwicklertag 2014 Agenda Hadoop Intro Map/Reduce


  1. Gideon Zenz – Frankfurter Entwicklertag 2014 19.02.2014 Datenanalyse mit Hadoop Quelle: Apache Software Foundation

  2. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Agenda Hadoop – Intro Map/Reduce – Parallelisierung des Datenflows Exkurs: M/R mit Java, Python, Pig Aufbereitung der Daten, Auswahl der Algorithmen 2

  3. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Zielstellung von Hadoop  Verarbeitung von großen Datenmengen (hunderte Terabytes)  System soll günstig aufzubauen sein  Viele billige Rechner  Diese sind nicht zuverlässig  Redundanz  Effizienz und Zuverlässigkeit: Generische Infrastruktur Hadoop ist:  Open Source Apache Projekt  Kern: – Map/Reduce als Verteilungsalgorithmus (mehr mit YARN und Hadoop 2.0) – Hadoop Distributed Filesystem zur Datenverteilung 3

  4. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Standardhardware statt Großrechner  Architektur typischerweise auf 2 Ebenen  Datenlokalität wird ausgenutzt  Typischerweise 3 Replikate (einstellbar) in 64 MB Blöcken, append-only  Optimiert für Streaming großer Dateien (z.B. Web Crawl) Source: Owen O’Malley, Yahoo ! 4

  5. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Agenda Hadoop – Intro Map/Reduce – Parallelisierung des Datenflows Exkurs: M/R mit Java, Python, Pig Aufbereitung der Daten, Auswahl der Algorithmen 5

  6. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Map/Reduce  Ursprünglich von Google Inc. entwickelt  Programmierungsmodell für effizientes verteiltes Berechnen  Batchbetrieb für lineare Bearbeitung großer Datenmengen, ähnlich Unix Pipeline: – cat input | grep abc | sort | uniq -c | cat > output – Input | Map | Shuffle & Sort | Reduce | Output  Effizient für: – Erstanalyse großer Datenmengen – Parallele, gleichförmige Verarbeitung  Beispiel: – Clicklog Analyse – Indizierung von Webseiten – Topic/Entity/Sentiment Analysis – Data mining – … Source: Owen O’Malley, Yahoo!, 6

  7. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Map/Reduce Dataflow Input Dateien Map Mix&Sort Reduce Output Kleine Elefanten ganz groß Mapper Daten, 2 Elefanten, 2 ganz, 1 groß, 1 Reducer Große, 2 kleine, 1 kleinen, 1 Große Daten schnell Skew Verarbeitet Mapper schnell, 1 verarbeitet, 1 Reducer von, 1 Große Daten von kleinen Elefanten Mapper  Inputdateien werden auf Mapper verteilt  Mapperoutput wird (hashbasiert) auf Reducer verteilt – im Beispiel am halben Alphabet  Diese aggregieren Daten und schreiben Ergebnisse in Outputdateien 7

  8. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Agenda Hadoop – Intro Map/Reduce – Parallelisierung des Datenflows Exkurs: M/R mit Java, Python, Pig Aufbereitung der Daten, Auswahl der Algorithmen 8

  9. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Word Count in Python import dumbo def mapper(key,value): for word in value.split(): yield word,1 def reducer(key,values): yield key,sum(values) if __name__ == "__main__": dumbo.run(mapper,reducer) Source: Owen O’Malley , Yahoo! 9

  10. Datenanalyse mit Hadoop – Gideon Zenz – Frankfurter Entwicklertag 2014 Dataflow programmieren mit Apache PIG Szenario:  Datei 1: Userdaten Load Users Load Pages  Datei 2: Webseiten Filter by age Ziel: Top 5 Webseiten von Benutzern zwischen 18-25 Jahren Join on name Group on url Count clicks Order by clicks Take top 5 Source: Alan F. Gates, Yahoo! 10

Recommend


More recommend