26
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern Waldemar Reger Köln, 23.07.2014

Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

Embed Size (px)

Citation preview

Page 1: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

Analyse und Evaluierung von Parameterabhängigkeiten anhand derLaufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

!!

Waldemar Reger Köln, 23.07.2014

Page 2: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

2

1. Hadoop Grundlagen

2. Cluster Berechnungsarten

3. Ausgangslage

4. Aufgabenstellung

5. Herausforderung

6. Versuchsumgebung

7. Vorgehensweise

8. Analyse der Parameterabhängigkeiten

9. Applikation zur Berechnung von Clustern

10.Applikation DEMO

Agenda

Page 3: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Open-Source Framework unter Apache Lizenz

‣ Besteht aus den Kernkomponenten HDFS und MapReduce

‣ Weitere Komponenten können zusätzlich verwendet werden (Hive, HBase, Pig, …)

3

Hadoop GrundlagenHadoop

Page 4: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Hochverfügbares Dateisystem

‣ Redundante Speicherung von großen Datenmengen auf allen Cluster Nodes

‣ Blockweise Speicherung

‣ Master-Slave Architektur (siehe nächste Folie)

4

Hadoop GrundlagenHDFS

Page 5: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Programmiermodell zur Verarbeitung von großen, strukturierten und

unstrukturierten Daten

‣ Parallele Ausführung durch Aufteilung der Berechnung auf mehrere Nodes

‣ Master-Slave Architektur

‣ 1 Job-Tracker, mehrere Task-Tracker

5

Hadoop GrundlagenMapReduce Teil 1

Page 6: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Besteht aus der Map- und Reduce-Funktion (map() und reduce())

‣ Aufteilung in Map- und Reduce-Phase

‣ map() und reduce() sind individuell programmierbar -> Rest erledigt das

Framework

‣ Map-Phase liest Daten (Schlüssel-/Wert-Paare) ein und sortiert vor

‣ Reduce-Phase aggregiert über die Ergebnisse der Map-Phase und speichert das

Ergebnis im HDFS

6

Hadoop GrundlagenMapReduce Teil 2

Page 7: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Reduce-Phase kann während der Ausführung der Map-Phase beginnen

‣ Pro Node werden für die Verarbeitung von Tasks Slots zur Verfügung gestellt

‣ Slots sind in Map-Slots und Reduce-Slots fest definiert

‣ Optimales Slot-Verhältnis pro Cluster: 2/3 Map-Slots und 1/3 Reduce-Slots

7

Hadoop GrundlagenMapReduce Teil 3

Page 8: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ MapReduce-Job Beispiel: Wordcount

8

Hadoop GrundlagenMapReduce Teil 4

Page 9: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Benötigte Informationen (Eingabe)

‣ Vorhandenes Datenvolumen

‣ Hinzukommendes Datenvolumen pro Zeiteinheit (z.B. TB/Monat)

‣ Replikationsfaktor

‣ Zeitraum für die Verwendung des Clusters (z.B. 48 Monate)

‣ Ausgabe:

‣ Gesamtes Datenvolumen für den Verwendungszeitraum

‣ Vorrangig:

‣ Speicherung des gesamten Datenvolumens

9

Cluster BerechnungsartenNach dem Datenvolumen

Page 10: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Benötigte Informationen (Eingabe):

‣ Geplante MapReduce-Job Verarbeitungszeit

‣ Zu verarbeitende Datengröße

‣ Anzahl vorhandener MapReduce-Slots

‣ Art des MapReduce-Jobs (nicht in der Arbeit berücksichtigt!)

‣ Ausgabe:

‣ Anzahl erfolgreicher Nodes

‣ Berechnung der Bearbeitungszeit hängt auch von der Hardwarekonfiguration ab

10

Cluster BerechnungsartenÜber die MapReduce-Job Laufzeit

Page 11: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Manuelle Berechnung der Clustergröße (Anzahl benötigter Nodes) für die

Speicherung der Daten

‣ Keine genaue Aussage über die Laufzeit von MapReduce-Jobs möglich

‣ Berechnung basiert auf Erfahrungen aus vergangenen Projekten

‣ dadurch: sehr ungenaue und kostenintensive Planungsphase

‣ Zeitintensive und mühselige Planung von Hadoop Clustern

11

Ausgangslage

Page 12: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Einflussnehmende Cluster Parameter definieren

‣ Parameterabhängigkeiten analysieren

‣ Ziel: Planung und Dimensionierung von Hadoop-Clustern

‣ Schnelle und einfache Bestimmung der Clustergröße

‣ Berechnung über das zu speichernde Datenvolumen

‣ Berechnung über die Vorhersage von MapReduce-Laufzeiten

‣ Integration der Ergebnisse in eine Applikation für die Berechnung von Hadoop-

Clustern

‣ Hier: Parameterabhängigkeiten für die Berechnung eines Clusters über die

MapReduce-Job Laufzeit analysieren

12

Aufgabenstellung

Page 13: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Viele Abhängigkeiten -> Erhöhung der Komplexität

‣ Art des MapReduce-Jobs (IO- / Speicherintensiv)

‣ Individuelle Programmierung der map()- und reduce()-Funktion

‣ Hardware Konfiguration (CPU, RAM, HDD Größe, Anzahl HDDs, …)

‣ Anzahl verwendeter Nodes

‣ Zu verarbeitende Datenmenge

‣ Anzahl gleichzeitig ausgeführter MapReduce-Jobs

‣ Parameter beeinflussen sich gegenseitig

13

HerausforderungParameterabhängigkeiten für die Laufzeitbestimmung

Page 14: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Beschränkung der zu analysierenden Parameter

‣ Hardware Konfiguration (allgemein)

‣ Anzahl Nodes pro Cluster

‣ Zu verarbeitende Datenmenge (Input Datengröße)

‣ Anzahl Map- und Reduce-Slots

14

VersuchsumgebungParameter für die Abhängigkeitsanalyse

Page 15: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Amazon Elastic MapReduce (EMR) Cluster (Bestehend aus Amazon EC2

Instanzen)

‣ 3 unterschiedliche Hardware Konfigurationen

!!!!!

‣ Amazon S3 als Quelle für den Dateninput

15

VersuchsumgebungVerwendete Cluster Hardware

Page 16: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Hadoop Version 1 (HDFS + MapReduce)

‣ Version 0.20.205

‣ Standard Amazon EMR Konfiguration

‣ Blockgröße: 64 MB

‣ Standard MapReduce-Job: TeraSort

‣ Generierung der Daten mit Hilfe von TeraGen

16

VersuchsumgebungVerwendete Software

Page 17: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Unterteilung der Versuche in 3 Hardware Konfigurationen

‣ Pro Hardware Konfiguration:

‣ Clustergröße von 3, 6 und 12 Nodes (Slave-Nodes)

‣ 1, 5 und 10 GB Input-Datengrößen

‣ Pro Versuchsdurchlauf unterschiedliche MapReduce-Slot Konstellation

‣ 1 Reducer-Slot und Rest Map-Slots

‣ 2/3 Map-Slots und 1/3 Reduce-Slots

‣ Map- und Reduce-Slots im Verhältnis 50:50

17

VorgehensweiseVersuchsaufbau

Page 18: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Pro Hardwarekonfiguration:

18

VorgehensweiseSzenario

Page 19: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Analyse der Messergebnisse mit unterschiedlicher Hardware Konfiguration

‣ Andere Parameter bleiben unverändert

‣ Vergleich der MapReduce-Job Laufzeit bei:

‣ Hardware 1 mit Hardware 2

‣ Hardware 2 mit Hardware 3

‣ Ergebnis:

‣ HW1 mit HW2: Laufzeit halbiert

‣ HW2 mit HW3: Laufzeit halbiert

‣ Begründung: Verdoppelung der CPU-Cores pro Hardware Konfiguration

19

Analyse der ParameterabhängigkeitenParameter: Unterschiedliche Hardware Konfiguration

Page 20: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Analyse der Messergebnisse mit unterschiedlicher Anzahl Nodes

‣ Andere Parameter bleiben unverändert

‣ Analyse der Laufzeit durch:

‣ Verdoppelung der Nodeanzahl:

‣ Laufzeit mit 3 Nodes und mit 6 Nodes

‣ Laufzeit mit 6 Nodes und mit 12 Nodes

‣ Ergebnis:

‣ Doppelte Anzahl Nodes -> Halbierung der MapReduce-Job Laufzeit

‣ Begründung: Anzahl der Map- und Reduce-Slots wird durch die Anzahl Nodes

auch verdoppelt

20

Analyse der ParameterabhängigkeitenParameter: Anzahl Nodes

Page 21: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

21

Analyse der ParameterabhängigkeitenParameter: Anzahl Nodes

Page 22: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Analyse der Messergebnisse mit unterschiedlicher Input Datengröße

‣ Andere Parameter bleiben unverändert

‣ Analyse der Laufzeit durch:

‣ Laufzeit bei Input Datengrößen 1GB und 5GB (+ Zwischengrößen 2, 3, 4 und

8GB bei Hardware Konfiguration 1)

‣ Laufzeit bei Input Datengrößen 5GB und 10GB

‣ Ergebnis:

‣ HW1: Verdoppelung der Input Datengröße -> Verdoppelung der Laufzeit

‣ HW2 und HW3: Verdoppelung der Input-Datengröße -> Laufzeit 1,5x höher

22

Analyse der ParameterabhängigkeitenParameter: Input Datengröße

Page 23: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Messergerbnisse in einer Formel zusammengefasst

‣ Ermöglicht das einfache Berechnen von:

‣ MapReduce-Job Laufzeiten

‣ Benötigter Nodes

‣ Input Datengröße

‣ Formel wurde im Praxistest bestätigt

23

Analyse der ParameterabhängigkeitenZusammenfassung für HW1

Page 24: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

‣ Berechnung der benötigten Anzahl Nodes für:

‣ Berechnung des Datenvolumens für den Nutzungszeitraum

‣ Berechnung der MapReduce-Job Laufzeit

24

Applikation zur Berechnung von Clustern

Page 25: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

25

Ende

Fragen?

Page 26: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern

26

Vielen Dank für Ihre Aufmerksamkeit!

Kontakt !Waldemar Reger !inovex GmbH Office Köln Schanzenstraße 6 - 20 51063 Köln !Mail: [email protected] !!!!!