analyse und evaluierung von parameterabhängigkeiten anhand der laufzeit von mapreduce-jobs zur...
TRANSCRIPT
Analyse und Evaluierung von Parameterabhängigkeiten anhand derLaufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern
!!
Waldemar Reger Köln, 23.07.2014
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
‣ 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
‣ 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
‣ 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
‣ 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
‣ 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
‣ MapReduce-Job Beispiel: Wordcount
8
Hadoop GrundlagenMapReduce Teil 4
‣ 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
‣ 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
‣ 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
‣ 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
‣ 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
‣ 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
‣ 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
‣ 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
‣ 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
‣ Pro Hardwarekonfiguration:
18
VorgehensweiseSzenario
‣ 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
‣ 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
21
Analyse der ParameterabhängigkeitenParameter: Anzahl Nodes
‣ 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
‣ 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
‣ 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
25
Ende
Fragen?
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] !!!!!