+ All Categories
Home > Technology > Amazon EMR Grundlagen

Amazon EMR Grundlagen

Date post: 17-Jul-2015
Category:
Upload: inovex-gmbh
View: 165 times
Download: 0 times
Share this document with a friend
23
Amazon EMR Grundlagen Waldemar Reger Köln, 18.07.2014
Transcript

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

● MapReduce-Jobs per EMR-CLI ausführen

● EMR Monitoring

● DEMO

Agenda

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

● 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

● 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

● 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

Cluster Aufbau

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

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

● Verwaltung mit Hilfe der Amazon AWS Management Console

● Verwaltung mit dem Amazon EMR CLI

10

Cluster Management● EMR Cluster Verwalten

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?

● 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

● 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

● 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

● 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

● --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

● 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

● 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

● 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

DEMO

DEMO

21

Danke

22

Vielen Dank für Ihre Aufmerksamkeit

Kontakt

Waldemar Reger

inovex GmbHOffice KölnKupferhütte 4.1Schanzenstraße 6 - 2051063 Köln

Mail: [email protected]

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


Recommended