• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MapRecude: The Hadoop Connection
 

MapRecude: The Hadoop Connection

on

  • 1,832 views

MapReduce erlaubt das verteilte Verarbeiten riesiger Datenmengen auf einer grossen Anzahl einfacher Knoten (Cluster). Kann dieses Thema in einem Enterprise-Java-Umfeld von Bedeutung sein ? Nach einer ...

MapReduce erlaubt das verteilte Verarbeiten riesiger Datenmengen auf einer grossen Anzahl einfacher Knoten (Cluster). Kann dieses Thema in einem Enterprise-Java-Umfeld von Bedeutung sein ? Nach einer kurzen Einführung in das MapReduce Verfahren, gibt diese Session einen Überblick über die Möglichkeiten von MapReduce mit Hilfe von Apache Hadoop und diskutiert Einsatzmöglichkeiten.

Statistics

Views

Total Views
1,832
Views on SlideShare
1,812
Embed Views
20

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 20

http://www.slideshare.net 20

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

    MapRecude: The Hadoop Connection MapRecude: The Hadoop Connection Presentation Transcript

    • MapReduce: The Hadoop Connection JAX 2010 06.05.2010 | 08:30 - 09:45 Tobias Joch inovex GmbH Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
    • Agenda Motivation MapReduce Hadoop Einsatzmöglichkeiten United States Patent #7650331 Zusammenfassung 2
    • Motivation 3
    • lance@twitter „In 140 characters tell me why map reduce is important please.“ 4
    • Beispiel Antworten auf lance‘s Frage infloop: @lance Some computing tasks can be split up into small chunks, processed simultaneously, and then reassembled at the end. Think SETI@HOME rjurney: @botchagalupe With map/reduce we’re going to start making productive use of all that data lying around, informing nothing. talltodd65: @Lance MapReduce is ideal for processing very large data sets on a cluster of computers 5
    • Motivation Verarbeiten großer Datenmengen Web Scale Häufigkeiten zählen, Invertierten Index berechnen, ... Verteiltes Rechnen Programmiermodell Last- und Datenverteilung Hochverfügbarkeit auf billiger Standard Hardware Berechnung auf mehrere Rechner verteilen Geographisch verteilt 6
    • Moore‘s Law “The density of transistors on a chip doubles every 18 months, for the same cost” (1965) 7
    • 8
    • Commodity Hardware The Google Way 9
    • Commodity Hardware Cluster Lamont-Doherty Earth Observatory Fats 10
    • Rechenzentrums Cluster 11
    • MapReduce 12
    • MapReduce Paper von Google (2004) Software Framework zur parallelen Verarbeitung von großen Datenmengen Einsatz von „Commodity Hardware“ (Fehlertolerant) Inspiration durch die map/fold Funktionen aus der funktionsorientierte Programmierung Klare Abstraktion für Programmierer Versteckt Low-Level Details Datenverteilung, Loadbalancing, Fehlertoleranz, Parallelisierung 13
    • MapReduce Programmiermodel Datenverarbeitungsmodell (Pipes, Queues, ...) Berechnung wird in Form von zwei Funktionen vom Benutzer beschrieben map() Filterung und Transformation in Zwischenergebnisse Ausführung findet parallel statt reduce() Aggregation der Zwischenergebnisse Typischer Weise 0,1 Ergebnisse pro K‘ Ausführung kann auch parallel statt finden 14
    • „Hello World“ für MapReduce: Word Count map() function map(String key, String value): // key: document name // value: document contents foreach word w in value: EmitIntermediate(w, "1"); reduce() function reduce(String key, Iterator values): // key: a word // values: a list of counts int result = 0; foreach v in values: result += ParseInt(v); Emit(AsString(result)); 15
    • „Hello World“ für MapReduce: Word Count Eingabe (K, V) „Satz 1“: „Die JAX ist die Konferenz fürganzheitliches ...“ Zwischenergebnisse (K‘, V) „die“, 1 „JAX“, 1 „ist“, 1 „die“, 1 ... Endergebnis „die“, 2 „JAX“, 1 „ist“, 1 ... 16
    • MapReduce Beispielhafter Ablauf 17
    • MapReduce Scheduling Ein Master, viele Worker Eingabedaten werden auf M map Tasks gesplitet Zwischenergebnisse werden auf R reduce Tasks aufgeteilt Tasks werden dynamisch auf W Worker zugeordnet Beispiel: M=200.000, R=4000, W=2000 Master weißt jeden map Task einem freien Worker zu Datenlokalität wird hierbei berücksichtig Master weißt jeden reduce Task einem freien Worker zu Worker lesen K/V Paare (Zwischenergebnisse) sortieren und führen die reduce() auf den Daten aus 18
    • Fehlertoleranz Worker Ausfall: Master überprüft Worker periodisch Alle map Tasks werden neu verteilt Ergebnisse werden lokal gespeichert Nicht beendete reduce Tasks müssen neu verteilt werden Ergebnisse werden global gespeichert Alle reduce Worker werden benachrichtigt, dass map Tasks erneut ausgeführt werden Master Ausfall: Zustand wird zyklisch gesichert neuer Master stellt Zustand wieder her und übernimmt 19
    • Daten Lokalität Ziel: Netzwerkbandbreite schonen HDFS teilt Dateien in Blöcke ein und speichert n Kopien auf unterschiedlichen Knoten im Cluster Master verteilt map() Tasks unter Berücksichtigung des Speicherortes der Eingabedaten Ziel map() Tasks physikalisch auf den selben Maschinen (selbes Rack, Rechenzentrum, ...) wie die Eingabedaten ausführen 20
    • Hadoop 21
    • Hadoop History 2004 Gegründet als Sub-Projekt von Nutch (Lucene) Java basierende OpenSource Implementierung von MapReduce 2006 Doug Cutting wechselt zu Yahoo! Eigenes Hadoop-Team@Yahoo! Apache Projekt 2008 Top Level Projekt 10.000+ Linux Cluster Aktuell Version 0.20.2 Ökosystem mit vielen Subprojekten 22
    • Hadoop Gewinnt Terabyte Sort Benchmark (Juli 2008) „One of Yahoo's Hadoop clusters sorted 1 terabyte of data in 209 seconds, which beat the previous record of 297 seconds in the annual general purpose (Daytona) terabyte sort benchmark. This is the first time that either a Java or an open source program has won.“ 23
    • Hadoop Steht für? Lucene Zweitname von Doug Cutting‘s Frau Nutch sagte Doug Cutting‘s kleiner Sohn für jegliche Art von Mahlzeit Hadoop Name eines kleinen gelben Stoffelefanten von seinem Doug Cutting‘s Sohn 24
    • Hadoop Subprojekte Hadoop Common: The common utilities that support the other Hadoop subprojects. Avro: A data serialization system that provides dynamic integration with scripting languages. Chukwa: A data collection system for managing large distributed systems. HBase: A scalable, distributed database that supports structured data storage for large tables. HDFS: A distributed file system that provides high throughput access to application data. Hive: A data warehouse infrastructure that provides data summarization and ad hoc querying. MapReduce: A software framework for distributed processing of large data sets on compute clusters. Pig: A high-level data-flow language and execution framework for parallel computation. ZooKeeper: A high-performance coordination service for distributed applications. 25
    • Wer setzt Hadoop ein? Yahoo „Biggest cluster: 2000 nodes, used to support research for Ad Systems and Web Search.“ Amazon „Process millions of sessions daily for analytics, using both the Java and streaming APIs. Clusters vary from 1 to 100 nodes.“ Facebook „Use Hadoop to store copies of internal log and dimension data sources and use it as a source for reporting/analytics. 600 machine cluster.“ AOL, IBM, Rackspace, Hulu, the New York Times ... 26
    • Hadoop Basics /usr/bin/hadoop --> Command-line wrapper Zugriff auf mehrere Subsysteme von Hadoop fs --> HDFS -ls, -put, -cat, -get, -copyToLocal -rm, -rmr, -mv, -cp, -mkdir, etc. jar --> MapReduce Jobs job --> Job-Steuerung -list, -status, -kill Java und Streaming Interface (Perl, PHP, Python, Ruby, Bash, etc.) 27
    • Einsatzmöglichkeiten 28
    • Einsatzmöglichkeiten Verteiltes Grep Suche in großen Mengen von Log-Files map() liefert eine Zeile als Zwischenergebnis, falls diese dem entsprechendem Pattern entspricht reduce() kopiert Zwischenergebnisse als Endergebnis 29
    • Einsatzmöglichkeiten Web-Server Statistik Aus welchen Ländern und Städten erfolgen die meisten Zugriffe auf bestimmte Web-Seiten? map() filtert Zugriffe auf bestimmte Web-Seten und liefert die entsprechenden IP-Adressen aus den Access-Logs als Zwischenergebnisse reduce() Reduziert IP-Adresse auf Class C-Adresse Ergebnisse können im Nachgang mit Geoinformationen aus IP-Adressdatenbanken angereichert werden Hive (DWH), Sqoop (RDBMS) 30
    • Einsatzmöglichkeiten Invertierter Web-Link Graph Bestimmung aller URLs, welche ein bestimmtest Ziel referenzieren map() liefert (Ziel, Quelle) Paare für jeden Link innerhalb einer Web-Seite reduce() Fasst die Liste aller Quell-URLs zusammen, von welchen aus ein bestimmtest Ziel referenziert wird (Ziel, List (Quelle)) 31
    • Einsatzmöglichkeiten Rankingfaktor „Term Vector“ Welche Websites sind die Spezialisten für ein gesuchtes Thema? map() liefert (Hostname, Term Vector) Paare für jedes Eingabedokument Der Hostname wird aus der URL bestimmt reduce() Führt die häufigsten (z.B. Top 10) Zwischenergebnisse zu einem Endergebnis (Hostname, Term Vector) zusammen 32
    • Einsatzmöglichkeiten Beispiel Facebook Backendsystem „Scribe“ Logfiledaten Verarbeitung 25 TByte Logfiles pro Tag chronologische Konsolidierung Hadoop-Cluster mit rund 1.000 Nodes erlaubt Analysen des Nutzerverhaltens „wie neue Funktionen von Nutzern verwendet werden" 33
    • Einsatzmöglichkeiten Weitere spannenden Einsatzgebiete... Business Intelligence Log-File Analyse Wetterdaten Data Mining Auswertung von User Verhalten Profil Berechnungen Index Erstellung Server Monitoring --> Annomalien Reports ... 34
    • Einsatzmöglichkeiten Beispiel Google Web-Scale Search Index Google‘s Suche umfasst n Milliarden Web-Seiten August 2004 29.000 Jobs September 2007 2.2 Millionen Aktuell täglich ca. 100.000 Jobs 35
    • Google‘s Patent #7650331 36
    • Google‘s Patent #7650331 vom 19.01.2010 „A large-scale data processing system and method includes one or more application-independent map modules configured to read input data and to apply at least one application-specific map operation to the input data to produce intermediate data values...“ 37
    • Google‘s Patent Lizenz für Hadoop! „we have granted a license for Hadoop“ From Owen O'Malley <omal...@apache.org> Subject Re: License for Google's patent Date Fri, 23 Apr 2010 05:27:14 GMT All, We got the following email from Larry Rosen, Apache's legal counsel. -- Owen On Apr 22, 2010, at 7:49 PM, Lawrence Rosen wrote: > To: ASF Board > > Several weeks ago I sought clarification from Google about its > recent patent 7,650,331 ["System and method for efficient large- > scale data processing"] that may be infringed by implementation of > the Apache Hadoop and Apache MapReduce projects. I just received > word from Google's general counsel that "we have granted a license > for Hadoop, terms of which are specified in the CLA." > > I am very pleased to reassure the Apache community about Google's > continued generosity and commitment to ASF and open source. Will > someone here please inform the Apache Hadoop and Apache MapReduce > projects that they need not worry about this patent. > > Best regards, > > /Larry 38
    • Zusammenfassung 39
    • Zusammenfassung Programmiermodell für verteiltes Rechnen OSS Implementierung mit breiter Unterstützung verfügbar Bewege Code anstelle von Daten Lizenzfrage geklärt Breite Akzeptanz, wenig Kritik „MapReduce: A major step backwards” (Michael Stonebraker) Sehr guter kommerzieller Support Verfügbar Prädikat: Empfehlenswert! ;) 40
    • Fragen & Antworten Tobias Joch System Architecture Project Management inovex GmbH Karlsruher Straße 71 75179 Pforzheim 0173.3181 004 tobias.joch@inovex.de www.inovex.de Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
    • Vielen Dank! ;) Tobias Joch System Architecture Project Management inovex GmbH Karlsruher Straße 71 75179 Pforzheim 0173.3181 004 tobias.joch@inovex.de www.inovex.de Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.