Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern
1. Analyse und Evaluierung von Parameterabhängigkeiten anhand der
Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern
!
!
Waldemar Reger
Köln, 23.07.2014
3. ‣ 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 Grundlagen
Hadoop
4. ‣ Hochverfügbares Dateisystem
‣ Redundante Speicherung von großen Datenmengen auf allen Cluster Nodes
‣ Blockweise Speicherung
‣ Master-Slave Architektur (siehe nächste Folie)
4
Hadoop Grundlagen
HDFS
5. ‣ 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 Grundlagen
MapReduce Teil 1
6. ‣ 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 Grundlagen
MapReduce Teil 2
7. ‣ 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 Grundlagen
MapReduce Teil 3
9. ‣ 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 Berechnungsarten
Nach dem Datenvolumen
10. ‣ 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
11. ‣ 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
12. ‣ 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
13. ‣ 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
Herausforderung
Parameterabhängigkeiten für die Laufzeitbestimmung
14. ‣ 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
Versuchsumgebung
Parameter für die Abhängigkeitsanalyse
15. ‣ Amazon Elastic MapReduce (EMR) Cluster (Bestehend aus Amazon EC2
Instanzen)
‣ 3 unterschiedliche Hardware Konfigurationen
!
!
!
!
!
‣ Amazon S3 als Quelle für den Dateninput
15
Versuchsumgebung
Verwendete Cluster Hardware
16. ‣ 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
Versuchsumgebung
Verwendete Software
17. ‣ 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
Vorgehensweise
Versuchsaufbau
19. ‣ 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ängigkeiten
Parameter: Unterschiedliche Hardware Konfiguration
20. ‣ 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ängigkeiten
Parameter: Anzahl Nodes
22. ‣ 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ängigkeiten
Parameter: Input Datengröße
23. ‣ 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ängigkeiten
Zusammenfassung für HW1
24. ‣ 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