Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur...
-
Upload
inovex-gmbh -
Category
Technology
-
view
104 -
download
2
Transcript of Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur...
![Page 1: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/1.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/2.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/3.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/4.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/5.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/6.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/7.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/8.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/9.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/10.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/11.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/12.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/13.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/14.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/15.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/16.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/17.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/18.jpg)
‣ Pro Hardwarekonfiguration:
18
VorgehensweiseSzenario
![Page 19: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/19.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/20.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/22.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/23.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/24.jpg)
‣ 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](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/25.jpg)
25
Ende
Fragen?
![Page 26: Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern](https://reader034.fdocument.pub/reader034/viewer/2022042607/55a866a51a28ab0a408b47cb/html5/thumbnails/26.jpg)
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] !!!!!