Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Amazon EMR
Grundlagen
Waldemar Reger
Köln, 18.07.2014
2
●
Was ist Amazon EMR?
●
Cluster Aufbau
●
EMR MapReduce-Job
●
Workflow
●
Cluster Management
●
EMR-CLI
●
Cluster erstellen...
3
●
Amazon Elastic MapReduce
●
Web-Dienst von Amazon für das Erstellen von skalierbaren Clustern
●
Cluster Nodes sind Amaz...
4
●
HDFS (Daten verfallen, sobald der Cluster terminiert wird)
●
Amazon S3 (Amazon Cloud Storage)
●
Amazon DynamoDB (NoSQL...
5
●
Hive (Data-Warehouse)
●
Pig (Scripting Platform)
●
HBase (NoSQL Datenbank)
●
Impala (Echtzeit Abfrage Engine)
●
Gangli...
6
●
Besteht aus mehreren EC2 Instanzen, die auf die jeweiligen
Bedürfnisse optimiert sind (Standard, CPU, RAM, ... [1])
●
...
7
Cluster Aufbau
8
●
1 Job = 1 Step
●
Steps werden nacheinander abgearbeitet
●
Cluster kann max. 256 Steps zugewiesen bekommen
●
Zustand de...
9
1. MapReduce-Job erstellen
2. Daten für die Bearbeitung zur Verfügung stellen (lokal oder mit
Hilfe von einer der unters...
●
Verwaltung mit Hilfe der Amazon AWS Management Console
●
Verwaltung mit dem Amazon EMR CLI
10
Cluster Management
●
EMR C...
11
●
Hadoop Cluster erstellen
●
Bootstrap Aktionen definieren
●
Größe eines laufenden Clusters verändern
●
Cluster Konfigu...
●
Voraussetzung ist Ruby ab Version 1.8.7
●
EMR-CLI auf der Amazon-Webseite downloaden und in einem
Verzeichnis entpacken
...
13
●
elastic-mapreduce --create --alive --set-termination-protection --name „Clustername“
--num-instances 7 --instance-typ...
14
●
elastic-mapreduce --create Einleitung einer Cluster Generierung
--alive Cluster soll selbst nach abgeschlossenen Jobs...
15
●
Amazon EMR Skripte, die auf dem Cluster ausgeführt werden,
wenn der Cluster erstellt wird
●
Ausführung eigener Skript...
16
●
--bootstrap-action s3://elasticmapreduce/bootstrap-
actions/configure-hadoop –args „<arg1>,<arg2>,...“
●
Argumente:
–...
17
●
Job-Informationen können einzeln an Amazon EMR übergeben
werden (wird nicht weiter betrachtet!)
●
Jobs können mit Hil...
18
●
Steps:
– Konfiguration der MapReduce-Jobs
●
Voraussetzung: Jobflow-ID
– Cluster muss verfügbar sein
– Befehl:
elastic...
19
●
Hadoop Monitoring mit Ganglia
●
Ganglia Installation:
– --bootstrap-action s3://elasticmapreduce/bootstrap-
actions/i...
20
DEMO
DEMO
21
Danke
22
Vielen Dank für Ihre Aufmerksamkeit
Kontakt
Waldemar Reger
inovex GmbH
Office Köln
Kupferhütte 4.1
Schanzenstraße 6 - 2...
23
[1] http://aws.amazon.com/de/ec2/instance-types/
[2] http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/...
Nächste SlideShare
Wird geladen in …5
×

Amazon EMR Grundlagen

520 Aufrufe

Veröffentlicht am

Waldemar Reger, inovex GmbH, Juli 2014

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Amazon EMR Grundlagen

  1. 1. Amazon EMR Grundlagen Waldemar Reger Köln, 18.07.2014
  2. 2. 2 ● Was ist Amazon EMR? ● Cluster Aufbau ● EMR MapReduce-Job ● Workflow ● Cluster Management ● EMR-CLI ● Cluster erstellen ● MapReduce-Jobs per EMR-CLI ausführen ● EMR Monitoring ● DEMO Agenda
  3. 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. 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
  5. 5. 5 ● Hive (Data-Warehouse) ● Pig (Scripting Platform) ● HBase (NoSQL Datenbank) ● Impala (Echtzeit Abfrage Engine) ● Ganglia (Cluster Monitoring) ● HCatalog (Tabellen- und Speicherverwaltung) ● Mahout (maschinelles Lernen) ● ... Was ist Amazon EMR? ● Unterstützte Hadoop Komponenten
  6. 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
  7. 7. 7 Cluster Aufbau
  8. 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. 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. 10. ● Verwaltung mit Hilfe der Amazon AWS Management Console ● Verwaltung mit dem Amazon EMR CLI 10 Cluster Management ● EMR Cluster Verwalten
  11. 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. 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
  13. 13. 13 ● elastic-mapreduce --create --alive --set-termination-protection --name „Clustername“ --num-instances 7 --instance-type m1.small --master-instance-type m1.small --log-uri s3n://inovex-storage/logs/ --ami-version 2.1.4 --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-action s3://elasticmapreduce/bootstrap-actions/install-ganglia Cluster erstellen ● Beispiel
  14. 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. 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
  16. 16. 16 ● --bootstrap-action s3://elasticmapreduce/bootstrap- actions/configure-hadoop –args „<arg1>,<arg2>,...“ ● Argumente: – Übergabe von Konfigurationsdateien (z.B. config.xml) – Übergabe von Key-Value Paaren (z.B. mapred.map.tasks=4) ● Bsp.: --args „M,s3://<bucketname>/config.xml,- h,dfs.block.size=67108864“ Cluster erstellen ● Bootstrap Aktion: Hadoop Konfiguration
  17. 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
  18. 18. 18 ● Steps: – Konfiguration der MapReduce-Jobs ● Voraussetzung: Jobflow-ID – Cluster muss verfügbar sein – Befehl: elastic-mapreduce --json <JSON-Dateiname> --jobflow <Jobflow-ID> ● Beispiel: – Step 1: TeraGen → Daten erzeugen – Step 2: TeraSort → Erzeugte Daten sortieren MapReduce-Jobs per EMR-CLI ausführen ● JSON-Files Aufbau
  19. 19. 19 ● Hadoop Monitoring mit Ganglia ● Ganglia Installation: – --bootstrap-action s3://elasticmapreduce/bootstrap- actions/install-ganglia ● Webfrontend läuft auf dem Master Node ● Zugriff durch Portforwarding (SSH-Tunnel) [4] EMR Monitoring
  20. 20. 20 DEMO DEMO
  21. 21. 21 Danke
  22. 22. 22 Vielen Dank für Ihre Aufmerksamkeit Kontakt Waldemar Reger inovex GmbH Office Köln Kupferhütte 4.1 Schanzenstraße 6 - 20 51063 Köln Mail: waldemar.reger@inovex.de
  23. 23. 23 [1] http://aws.amazon.com/de/ec2/instance-types/ [2] http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html [3] http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/ami-versions-supported.html [4] http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_Ganglia.html Quellen

×