Amazon EMR Grundlagen

409 Aufrufe

Veröffentlicht am

Waldemar Reger, inovex GmbH, Juli 2014

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
409
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

×