SlideShare a Scribd company logo
1 of 26
Download to read offline
Analyse und Evaluierung von Parameterabhängigkeiten anhand der

Laufzeit 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 Grundlagen
Hadoop
‣ 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
‣ 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
‣ 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
‣ 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
‣ MapReduce-Job Beispiel: Wordcount
8
Hadoop Grundlagen
MapReduce 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 Berechnungsarten
Nach 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
Herausforderung
Parameterabhä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
Versuchsumgebung
Parameter 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
Versuchsumgebung
Verwendete 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
Versuchsumgebung
Verwendete 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
Vorgehensweise
Versuchsaufbau
‣ Pro Hardwarekonfiguration:
18
Vorgehensweise
Szenario
‣ 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
‣ 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
21
Analyse der Parameterabhängigkeiten
Parameter: 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ängigkeiten
Parameter: 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ängigkeiten
Zusammenfassung 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: wreger@inovex.de
!
!
!
!
!

More Related Content

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

The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connectioninovex GmbH
 
MapRecude: The Hadoop Connection
MapRecude: The Hadoop ConnectionMapRecude: The Hadoop Connection
MapRecude: The Hadoop Connectionvesparun
 
130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdataHenning Blohm
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6FromDual GmbH
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzunginovex GmbH
 
Hadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-InfrastrukturenHadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-Infrastruktureninovex GmbH
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISPeter Löwe
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLFromDual GmbH
 
Caching mit Spring Boot - Pain & Gain @ JCON22
Caching mit Spring Boot - Pain & Gain @ JCON22Caching mit Spring Boot - Pain & Gain @ JCON22
Caching mit Spring Boot - Pain & Gain @ JCON22QAware GmbH
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopValentin Zacharias
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA'sFromDual GmbH
 
Multi-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz vieleMulti-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz vieleJörn Dinkla
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungMongoDB
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataDai Yang
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBMario Müller
 
Amazon EMR Grundlagen
Amazon EMR GrundlagenAmazon EMR Grundlagen
Amazon EMR Grundlageninovex GmbH
 
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationWeltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationFromDual GmbH
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickKarin Patenge
 

Similar to Analyse und Evaluierung von Parameterabhängigkeiten anhand der Laufzeit von MapReduce-Jobs zur Konzeptionierung von Hadoop-Clustern (20)

The Hadoop Connection
The Hadoop ConnectionThe Hadoop Connection
The Hadoop Connection
 
MapRecude: The Hadoop Connection
MapRecude: The Hadoop ConnectionMapRecude: The Hadoop Connection
MapRecude: The Hadoop Connection
 
130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata130605 buildfrei skalieren_fuer_bigdata
130605 buildfrei skalieren_fuer_bigdata
 
MySQL - New Features 5.6
MySQL - New Features 5.6MySQL - New Features 5.6
MySQL - New Features 5.6
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
Hadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-InfrastrukturenHadoop in modernen BI-Infrastrukturen
Hadoop in modernen BI-Infrastrukturen
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQL
 
Caching mit Spring Boot - Pain & Gain @ JCON22
Caching mit Spring Boot - Pain & Gain @ JCON22Caching mit Spring Boot - Pain & Gain @ JCON22
Caching mit Spring Boot - Pain & Gain @ JCON22
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA's
 
Multi-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz vieleMulti-GPU-Computing: Eins, zwei, drei, ganz viele
Multi-GPU-Computing: Eins, zwei, drei, ganz viele
 
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer AnwendungBack to Basics - Webinar 6: Produktivsetzung einer Anwendung
Back to Basics - Webinar 6: Produktivsetzung einer Anwendung
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global Data
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDB
 
Amazon EMR Grundlagen
Amazon EMR GrundlagenAmazon EMR Grundlagen
Amazon EMR Grundlagen
 
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-ReplikationWeltweite Produktionsdatenverwaltung mit MySQL-Replikation
Weltweite Produktionsdatenverwaltung mit MySQL-Replikation
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 

More from inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegeninovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIinovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolutioninovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policiesinovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learninginovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungeninovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeteninovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetesinovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systemsinovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreiheninovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenteninovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Projectinovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretabilityinovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use caseinovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessinovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumiinovex GmbH
 

More from inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
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
  • 2. 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
  • 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
  • 8. ‣ MapReduce-Job Beispiel: Wordcount 8 Hadoop Grundlagen MapReduce Teil 4
  • 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
  • 26. 26 Vielen Dank für Ihre Aufmerksamkeit! Kontakt ! Waldemar Reger ! inovex GmbH Office Köln Schanzenstraße 6 - 20 51063 Köln ! Mail: wreger@inovex.de ! ! ! ! !