28
10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele Übersicht: Basis-Architektur von Hadoop Einführung in HDFS Einführung in MapReduce Ausblick: Hadoop Ökosystem Optimierungen Versionen

Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 1/28

Einführung in Hadoop

● Inhalt / Lern-Ziele– Übersicht: Basis-Architektur von Hadoop

– Einführung in HDFS

– Einführung in MapReduce

– Ausblick: ● Hadoop Ökosystem● Optimierungen● Versionen

Page 2: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 2/28

Übersicht: Hadoop

Page 3: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 3/28

Was ist Hadoop?

● Software Framework für die Entwicklung verteilter Anwendungen

– Speicherung (Storage)

– Berechnungen (Computation)

● Apache Top Level Projekt– Apache Lizenz

● Entwickelt in Java● Produktions-Plattform: Linux

Page 4: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 4/28

Kern von Hadoop

● Verteiltes Dateisystem– HDFS (Hadoop Distributed File System)

– Inspiriert von Google File System (DFS)– Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file

system. SIGOPS Oper. Syst. Rev. 37, 5 (October 2003), 29-43

● Datenverarbeitungs Modell: MapReduce– Inspiriert von Google – Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: simplified data processing on

large clusters. Commun. ACM 51, 1 (January 2008), 107-113.

Page 5: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 5/28

Ziele● Skalierbar

– durch Hinzufügen von Nodes

● Einfach – Entwicklung verteilter Anwendungen

● Robust– Fehlertoleranz

● Zugäglichkeit (Accessible)– Standardhardware oder Cloud Computing

Services

Page 6: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 6/28

Architektur von Hadoop

● Verteilte Master-Slave Architektur für – Storage via Data Partitioning: HDFS

– Parallel Computation: MapReduce

Page 7: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 7/28

HDFS

Page 8: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 8/28

HDFS: Ziele und Annahmen

● Streaming Data Access● Hardware Failure ● Large Data Sets● Simple Coherency Model● “Moving Computation is Cheaper than

Moving Data”● Portability Across Heterogeneous

Hardware and Software Platforms

Page 9: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 9/28

HDFS - Eigenschaften

● data locality● large block size● data replication● fault tolerance gegenüber Software und

Hardware Fehler

Page 10: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 10/28

Name Nodes● Single Master

● „Volume Manager“ von HDFS

– In-Memory mapping der Files zu den Blocks

– d.h. für jeden Block: ● auf welchen Nodes ist dieser verfügbar

– Clients fragen Name Node ab, wenn sie File System Operations ausführen wollen, dann direkter Datentransfer zwischen Client und Datanode

● Eigentlichen Daten laufen nie über NameNodes

● Single Point of Failure - außer in “HDFS High-Availability”

Page 11: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 11/28

Data Nodes

● Verantwortlich für das Speichern der File Blocks

● Pipeline Write möglich● Kommunikation mit Name Node

Page 12: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 12/28

HDFS Client

● Anwendung, die eine File System Aktivität ausführen will, wie File schreiben, löschen etc.

● Anfrage an Name Node um Informationen zu erhalten

● direkte Interaktion mit Data Nodes, z.B. für Datei-Lesen und -Schreiben

Page 13: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 13/28

File System Namespace

● Hierarchisch, wie in anderen Dateisystemen

● Bisher: Keine Hard- oder Softlinks● Verantwortlich: Name Node

Page 14: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 14/28

Data Replication - Ziele

● Reliability (Ausfallsicherheit)

● Availability (Verfügbarkeit)

● Performance (Performanz)

Page 15: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 15/28

Data Replication

● Files bestehen aus Block-Sequenzen● Blocks werden repliziert● Replication Factor: Anzahl der Kopien

eines Files● Files sind write-ones● Name Nodes entscheiden über die

Replikation der Blocks● Name Nodes erhalten Heartbeats und

Blockreports von jedem Data Node

Page 16: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 16/28

Data Replication (cont.)

● Rack Awareness– Rechner innerhalb eines Racks haben

schnellere Netzverbindung – Hadoop kann dies bei der Replikation berücksichtigen

● Hardware für Hadoop– Lokale Festplatten pro Server statt SAN

oder NAS

– Raid-Systeme nicht nötig – ehr hinderlich

Page 17: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 17/28

Andere Dateisystem mit Hadoop

● Amazon S3● CloudStore (ex: Kosmos Distributed File

Systems)● FTP Filesystem● Read-Only HTTP und HTTPS

Page 18: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 18/28

MapReduce

Page 19: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 19/28

Eigenschaft von MapReduce

● Programmiermodell für Datenverarbeitung● Inhärent parallel● shared nothing● Zwei Phasen

– Map-Phase

– Reduce-Phase

● Algorithmen typischerweise umgesetzt als Sequenz von MapReduce Operationen

Page 20: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 20/28

Hadoop MapReduce Architektur

● JobTracker: Master der Job von Clients entgegennimmt und überwacht

● TaskTracker: Dämonenprozess, der Kind Prozesse erzeugt, die Teile des MapReduce Jobs ausführen.

Page 21: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 21/28

●Terminologie

● Job: "Arbeitsauftrag" des Clients auf der vollen Datenmenge

● Task: Teile des Jobs - auf Teil der Daten– map tasks

– reduce tasks

● Input wird in Teile fester Größe unterteilt– input splits – splits

– Ein map task für jeden split

Page 22: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 22/28

Key-Value

Input Output

map <k1, v1> list(<k2,v2>)

reduce <k2,list(v2)> list(<k3, v3>)

Page 23: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 23/28

MapReduce

Reduce

Reduce

Map

Map

Map

<k1,v1> list<k2,v2> list<k3,v3><k2,list(v2)>

Page 24: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 24/28

Wordcount mit MapReduce

Reduce

Reduce

Map

Map

Map

<1, rot grün gelb><2, gelb rot rot >….

<rot, 1> <grün,1><gelb,1>

<gelb,1> ..

<rot, (1,1,..)> <grün,(1,1,..)><gelb,(1,1,...>..

<rot, 101> <grün,77><gelb,98>..

Shuffle + Sort

Page 25: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 25/28

Ausblick

Page 26: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 26/28

Weitere Bestandteile

● Combiner zur Reduzierung der vom Netzwerk übertragenen Datenmenge

● Partitioner zum Aufteilen des Map-Outputs auf die Reducer

● Suffle&Sort zwischen Map und Reduce

Page 27: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 27/28

Hadoop Ökosystem● Hbase: Spaltendatenbank (Vorbild Googles

BigTable)● Pig: Dataflow Language ● Hive: Data Warehouse (SQL ähnliche Syntax)● Zookeeper: High availability coordination service● RHIPE: R - Hadoop Integrated Processing

Environment● Mahout: Distributed Machine Learning● Sqoop: “SQL-to-Hadoop”● Oozie (Workflow Engine)

Page 28: Einführung in Hadoop - christianherta.de · 10.02.2012 Prof. Dr. Christian Herta 1/28 Einführung in Hadoop Inhalt / Lern-Ziele – Übersicht: Basis-Architektur von Hadoop – Einführung

10.02.2012 Prof. Dr. Christian Herta 28/28

Literatur● C. Lam, J. Warren, „Green Paper from Hadoop in

Action“, 2009 http://manning.com/lam/

● A. Holmes: „What is Hadoop“ („Hadoop in Practice“), 2012 http://www.manning.com/holmes/

● Hadoop Wiki http://wiki.apache.org/hadoop/

● Hadoop Dokumentation http://hadoop.apache.org/common/docs/current/index.html