mapreduce & apache hadoop

Download MapReduce & Apache Hadoop

Post on 07-May-2015

3.984 views

Category:

Technology

0 download

Embed Size (px)

DESCRIPTION

Einführungsvortrag in das MapReduce-Programmiermodell und Apache Hadoop an der TU Berlin am 22. Januar 2010

TRANSCRIPT

  • 1.MapReduce & Apache Hadoop Paralleles Rechnen in ClusternOliver Fischer Technische Universitt Berlin ofischer@swe-blog.net22. Januar 2010

2. MapReduce & Apache HadoopFolie 2Inhalt Einfhrung MapReduce Grundlagen Funktionsweise Beispiele Zusammenfassung Apache Hadoop Geschichte Architektur MapReduce-Anwendungen mit Hadoop Beispiele Zusammenfassung Fazit Quellen 3. MapReduce Programmiermodell zur parallelen Verarbeitung von groen Datenstnden Grundlagen Funktionsweise Beispiele 4. MapReduce & Apache Hadoop Folie 4 Grundlagen Funktionsweise BeispieleMapReduce vorgestelltWas ist und kann MapReduce? Programmiermodell zur Verarbeitung und Erzeugung von groenDatenbestnden Ausgelegt fr die parallele Verarbeitung von Datenbestnden in groenClustern auf Standardhardware Auslegung auf hohe Fehlertoleranz Woher kommt MapReduce? Entwickelt durch Google zur Verarbeitung von Rohdaten Inspiriert duch Lisp und dessen Funktionen map und reduce 5. MapReduce & Apache HadoopFolie 5 Grundlagen Funktionsweise Beispielemap und reduce in Lispmap-Funktion Abbildung zwischen Listen Eingabe ist eine Sequenz von Werten und eine Funktion bergebene Funktion verarbeitet sequentiell alle Werte Ergebnis der bergebenen Funktion wird durch map ebenfalls alsSequenz zurckgegeben reduce-Funktion Zusammenfassung von Listen Eingabe ist eine Sequenz von Werten und eine binre Funktion Binre Funktion verbindet alle Werte der Eingabesequenz Ergebnis ist ein einfacher Wert 6. MapReduce & Apache Hadoop Folie 6 Grundlagen Funktionsweise BeispieleNotizen zu MapReduceGrundannahme von MapReduceDie Datenbertragungsrate (network bandwidth) ist die begrenzendeRessource in Clustern. Es ist effizienter die Berechnung zu den Daten zubringen. Was ist neu anders?Klassischer Ansatz: Daten zum Programm Was man vorher wissen sollte Google nutzt fr MapReduce-Anwendungen ein verteiltes Dateisystem(Google File System) Worker fhren auf Map- und Reduce-Funktionen verteilt im Cluster aus Zentraler Master koordiniert Ausfhrung 7. MapReduce & Apache Hadoop Folie 7 Grundlagen Funktionsweise BeispieleMapReduce als Programmiermodell allgemeinProgrammiermodell von MapReduce Map-Phase und Reduce-Phase Parallelisierung durch Phasen Jede Phase wird parallel ausgefhrt Eingabedaten auf verschiedene Rechnern Voraussetzung ist Partitionierbarkeit Beispiele Zhle alle Wrter in einem Text Zhle alle Referer im Logfile 8. MapReduce & Apache Hadoop Folie 8 Grundlagen Funktionsweise BeispieleMap-Phase von MapReduceAufgabe Verarbeitung von Eingabedaten und Erzeugung von Zwischenwerten Signatur map(k1,v1) list(k2,v2)Funktionsweise Eingabe ist Schlssel-Wert-Paar Ausgabe beliebig vieler intermediate key/value pairs Map-Funktion wird vom Anwender implementiert Beispiel map(String key, String value):// key: document name,// value: document contentsfor each word w in value: EmitIntermediate(w, "1"); 9. MapReduce & Apache Hadoop Folie 9 Grundlagen Funktionsweise BeispieleReduce-Phase von MapReduceAufgabe Zusammenfassung der Zwischenergebnisse, Bereitstellung des Endergebnisses Signatur reduce(k2,list(v2)) list(v2)Reduce-Phase Eingabe ist Schlssel und Werte-Menge zu diesem Schlssel Ausgabe von Reduce meistens null oder ein Wert Beispiel reduce(String key, Iterator values):// key: a word, values: a list of countsint result = 0;for each v in values: result += ParseInt(v);Emit(AsString(result)); 10. MapReduce & Apache Hadoop Folie 10 Grundlagen Funktionsweise BeispieleMapReduce als Programmiermodell schematisch WorkerFileSplit 0 map-FunktionFileSplit 1Workerreduce- FileFunktionSplit 2 EingabeSplit 3 WorkerFile map-FunktionFileSplit 4Split 5Workerreduce- FileSplit 6 Funktion WorkerFileSplit 7map-FunktionFileEingabedateien Map-PhaseZwischen-Reduce-Phase Ergebnisseergebnisse 11. MapReduce & Apache Hadoop Folie 11 Grundlagen Funktionsweise BeispieleMapReduce-BeispielAufgabe: Zhle die Wortvorkommen im folgenden Text: Arme haben Arme. Armehaben Beine. Beine haben keine Arme. Arme Beine! WorkerArme haben Arme. Arme haben Beine. Beine habenArme 3 Arme map-FunktionBeine 1 habenhaben 2 Arme. Arme haben Beine. Arme5 WorkerBeine 3reduce-haben 3Funktion keine 1keine Arme. Arme Beine! Beine haben keine Arme. Arme Beine! Arme2WorkerBeine 2map-Funktionhaben 1Keine 1 EingabedateienMap-PhaseZwischen-Reduce-PhaseErgebnisse ergebnisse 12. MapReduce & Apache Hadoop Folie 12 Grundlagen Funktionsweise Beispiele ZusammenfassungZusammenfassung zur MapReduceZusammenfassung Wurzeln von MapReduce in funktionaler Programmierung MapReduce ist ein Programmiermodel, kein Algorithmus Zwei-Phasen-Modell: Map und Reduce Auslegung auf mglichst hohe Parallelitt bei Verarbeitung Neuer Ansatz: Berechnung findet bei den Daten statt, nicht Daten kommen zur Berechung Anwendbar bei allen Problemen mit partitionierbaren Eingaberaum Je kleiner mgliche Partitionen, desto hher erreichbare Parallelitt 13. Apache Hadoop Freies Framework fr MapReduce-Anwendungen Geschichte Architektur MapReduce-Anwendungen Beispiele 14. MapReduce & Apache HadoopFolie 14 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungGeschichte von Apache HadoopEntstehungsgeschichte von Apache Hadoop Februar 2003: erste Google-interne MapReduce-Implementierung Oktober 2003: The Google Filesystem verffentlicht Dezember 2004, MapReduce: Simplifed Data Processing on Large Clusters verffentlicht 2005: Erste Implementierung im Suchmaschinen-Framework Nutch der Apache Software Foundation(Doug Cutting) Februar 2006: Hadoop wird Subprojekt bei Apache Lucene 2008: Hadoop wird Apache Top-Level-Projekt 2009: Hadoop wird in Subprojekte aufgeteilt und neue Projekte auf Hadoop-Basis entstehen Juli 2009: Ein Hadoop-Cluster gewinnt den Terabyte Sort Benchmark 15. MapReduce & Apache HadoopFolie 15 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungKomponenten von Apache HadoopHadoop Distributed File System Verteiltes Dateisystem nach den Vorbild des Google FileSystems Verteilung der Daten im Hadoop-Cluster Kernkomponenten sind NameNode und DataNodes MapReduce Framework zur Entwicklung von Anwendungen nach demMapReduce-Programmiermodell Kernkompenten sind der JobTracker und TaskTracker 16. MapReduce & Apache HadoopFolie 16 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungDas Hadoop Distributed File System (HDFS)Eigenschaften Verteiltes Dateisystem, designt unter der Annahme, das Hardwareausflle normal sind Kapazitt bis in den Petabyte-Bereich Grundnahme: Daten einmal geschrieben, oft gelesen, aber nicht mehr verndert Blockorientiert, Dateien werden in Blcke aufgeteilt, welche im Cluster verteilt werden Datensicherheit durch Blockreplikation Komponenten sind NameNode, SecondaryNameNode und DataNodes 17. MapReduce & Apache HadoopFolie 17 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungKomponenten des HDFS: NameNode und SecondaryNameNodeNameNode Verwaltet die Metadaten des HDFS Koordiniert die Verteilung von Dateien im HDFS Stellt nur Metadaten zur Verfgung, kein Datentransfer Regelt den Zugriff von Clients auf die Dateien im FileSystem berwacht das HDFS auf Ausflle von Nodes SecondaryNameNode Backupt die nderungen seit dem letzten Start des HDFS an den HDFS- Metadaten 18. MapReduce & Apache HadoopFolie 18 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungKomponenten des HDFS: DataNodeDataNode Verwaltet Blcke der Dateien auf den Clusternodes Ein DataNode pro Clusternode Meldet seinen Zustand per Heartbeat an den NameNode Zustndig fr den Datentransfer der Blcke zu anderen DateNodes und zu anfragenden Clients 19. MapReduce & Apache HadoopFolie 19 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungDas MapReduce-Framework von HadoopEigenschaften MapReduce-Programmiermodel Grundfunktionalitt abgedeckt Entwickler stellt Map- und Reduce-Funktion Grundfunktionalitt ber eigene Implementierungen nderbar MapReduce-Anwendung wird als Job bezeichnet Kernkomponenten sind der JobTracker und der TaskTracker 20. MapReduce & Apache HadoopFolie 20 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungJobTracker und TaskTrackerJobTracker Verteilt Map-Tasks und Reduce-Tasks auf Cluster-Nodes Steuert die Ausfhrung der Jobs im Cluster berwacht die Ausfhrung der Tasks und startet ggf. Tasks neu Pro Cluster nur ein JobTracker TaskTracker Fhrt Map- oder Reduce-Task lokal auf einem Node im Cluster aus Sendet Statusinformationen an JobTracker Beliebig viele TaskTracker mglich 21. MapReduce & Apache HadoopFolie 21 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungBeispiel-Mini-Hadoop-Cluster flow sl01.h ado o p : Serversl03.h ado o p : Server z eus.h ad o op : S erver: TaskTr acke r: TaskTr acke r : JobTrack er flow : Data Node : Data Node: Name Nodeflow flow flow flow flow flow sl02.h ado o p : Serversl04.h ado o p : Server : Se condar yName Node : Data Node: Data Node : TaskTr acke r: TaskTr acke r flow Ein Mini-Cluster mit fnf Knoten 22. MapReduce & Apache HadoopFolie 22 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungMapReduce-Anwendungen mit HadoopAllgemeines Hadoop stellt komplettes Framework fr MR-Anwendung bereit Funktionsweise im Wesentlichen analog zu Googles MapReduce-Programmiermodell Entwickler kann sich auf Map- und Reduce-Funktion beschrnken Entwickler kann durch eigene Implementierungen Hadoop-Verhaltenndern Ausfhrung von Jobs erfolgt sequentiell (Standardverhalten) 23. MapReduce & Apache HadoopFolie 23 Geschichte Architektur MapReduce-Anwendungen Beispiele ZusammenfassungZustndigkeiten in einem MapReduce-Job Eingabe lesen;Job Configuration Aufteilung in Splits Format und Ort der Input Splitting &Distribution EingabeInput FormatVerarbeitung derInput LocationSplits (einer pro Task) Start of Map Tasks Map-Funktion MapperSortierung Map-Ausgabe;Shuffle

Recommended

View more >