3. 3
●
Amazon Elastic MapReduce
●
Web-Dienst von Amazon für das Erstellen von skalierbaren Clustern
●
Cluster Nodes sind Amazon EC2-Instanzen [1]
●
Verwendung des Hadoop Frameworks (HDFS + MapReduce)
●
Vergleichbarer Funktionsumfang wie bei einem realen Hadoop-
Cluster (weitere Hadoop Komponenten)
●
Abrechnung nach Nutzungsdauer
●
Cluster ist um weitere Nodes erweiterbar
Was ist Amazon EMR?
4. 4
●
HDFS (Daten verfallen, sobald der Cluster terminiert wird)
●
Amazon S3 (Amazon Cloud Storage)
●
Amazon DynamoDB (NoSQL Datenbankservice)
●
Amazon Redshift (Data Warehouse Service)
●
Amazon Relational Database Service (RDBMS)
Was ist Amazon EMR?
●
Speicherung der Daten
6. 6
●
Besteht aus mehreren EC2 Instanzen, die auf die jeweiligen
Bedürfnisse optimiert sind (Standard, CPU, RAM, ... [1])
●
EC2-Instanzen bilden die einzelnen Nodes (Name- und Data-
Nodes sowie Job- und Task-Tracker)
●
Hadoop Framework ist in verschiedenen Versionen verfügbar [3]
●
MapReduce Version 1 und 2
●
Kombinierbar mit weiteren Amazon AWS Diensten
●
MapR Distribution verfügbar
Cluster Aufbau
8. 8
●
1 Job = 1 Step
●
Steps werden nacheinander abgearbeitet
●
Cluster kann max. 256 Steps zugewiesen bekommen
●
Zustand der Steps kann Pending, Running, Cancelled, Terminated,
Failed oder Completed einnehmen
●
Steps per Management Console an Cluster übertragen oder per
EMR-CLI
●
Letzter Step terminiert Cluster oder wartet auf weitere Steps (je nach
Konfiguration des Clusters)
EMR MapReduce-Job
9. 9
1. MapReduce-Job erstellen
2. Daten für die Bearbeitung zur Verfügung stellen (lokal oder mit
Hilfe von einer der unterstützten Speichermöglichkeiten)
3. EMR-Cluster erstellen (Management Console oder EMR-CLI)
4. Amazon erstellt eine eindeutige JobFlow-ID für den Cluster
5. MapReduce-Job zum Ausführen an Cluster senden
6. Warten bis MapReduce-Job abgeschlossen wurde und das
Ergebnis evtl. weiter verarbeiten
Workflow
●
Vom Erstellen eines Cluster bis zum zum Ausführen eines Jobs
10. ●
Verwaltung mit Hilfe der Amazon AWS Management Console
●
Verwaltung mit dem Amazon EMR CLI
10
Cluster Management
●
EMR Cluster Verwalten
11. 11
●
Hadoop Cluster erstellen
●
Bootstrap Aktionen definieren
●
Größe eines laufenden Clusters verändern
●
Cluster Konfiguration
●
MapReduce-Jobs auf dem Cluster starten
●
Konfigurationen im JSON-Format an Cluster übergeben
●
...
EMR-CLI
●
Was kann EMR-CLI?
12. ●
Voraussetzung ist Ruby ab Version 1.8.7
●
EMR-CLI auf der Amazon-Webseite downloaden und in einem
Verzeichnis entpacken
●
Im Verzeichnis eine credentials.json Datei erstellen → Zugriff auf
AWS-Dienste
●
Mit dem Kommando „elastic-mapreduce“ wird EMR über das CLI
bedient
12
EMR-CLI Installation und Konfiguration
14. 14
●
elastic-mapreduce --create Einleitung einer Cluster Generierung
--alive Cluster soll selbst nach abgeschlossenen Jobs nicht
terminiert werden
--set-termination-protection true Setzt den Termination-Protection Status (True|False)
--name „Clustername“ Clusternamen (muss nicht eindeutig sein)
--num-instances 7 Anzahl Instanzen des Clusters(NameNode + DataNodes)
--instance-type m1.small EC2 Instanztyp der DataNodes
--master-instance-type m1.small EC2 Instanztyp der NameNode
--log-uri s3n://inovex-storage/logs/ Pfad für die Speicherung der Log-Dateien
--ami-version 2.1.4 AMI Version = Unterstützung unterschiedlicher Hadoop
Komponenten und Versionen (Bsp.: 2.1.4 = Hive 0.7.1)
--bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop –args
„-h,dfs.replication=3,-h,dfs.block.size=67108864,-
m,mapred.jobtracker.taskScheduler=org.apache.hadoop.mapred.FairScheduler“
Bootstrap Aktion zur Konfiguration von Hadoop
--bootstrap-action s3://elasticmapreduce/bootstrap-actions/install-ganglia
Bootstrap Aktion zur Installation zusätzlicher Komponenten
[2]
Cluster erstellen
●
Beschreibung des Befehls
15. 15
●
Amazon EMR Skripte, die auf dem Cluster ausgeführt werden,
wenn der Cluster erstellt wird
●
Ausführung eigener Skripte
– --bootstrap-action „s3://<Pfad>/Dateiname“ --args
„arg1,arg2,...“
●
Aktionen:
– Installation von Komponenten (Ganglia, Hue, HBase, ..)
– Konfiguration diverser Komponenten (Hadoop, Hive, Hbase,
…)
Cluster erstellen
●
Bootstrap Aktion
17. 17
●
Job-Informationen können einzeln an Amazon EMR übergeben
werden (wird nicht weiter betrachtet!)
●
Jobs können mit Hilfe von JSON-Files zusammengefasst und den
Cluster übermittelt werden
●
JSON Verwendung bei EMR:
– Auswahl der Cluster Nodes (Amazon EC2-Instanzen)
– Clusterkonfiguration
– MapReduce-Job Konfiguration
●
Vorteile:
– Vereinfachte Möglichkeit mehrere Jobs gleichzeitig an Cluster
zu übermitteln
– Wiederverwendbarkeit
MapReduce-Jobs per EMR-CLI ausführen
●
JSON-Files