PRD-027 - Amazon Elastic MapReduce (EMR)

14
Amazon Web Services cloud-aws.com Amazon Elastic MapReduce (EMR) Hangout 27 del 28.08.2014 Davide Riboldi Massimo Della Rovere Oggi vediamo le caratteristiche generali del servizio di Amazon Elastic MapReduce chiamato Amazon EMR #cloudaws

description

Amazon Web Services, introduzione al servizio Amazon Elastic MapReduce (EMR)

Transcript of PRD-027 - Amazon Elastic MapReduce (EMR)

Page 1: PRD-027 - Amazon Elastic MapReduce (EMR)

Amazon Web Services

cloud-aws.com

Amazon Elastic MapReduce (EMR)

Hangout 27 del 28.08.2014

● Davide Riboldi● Massimo Della Rovere

Oggi vediamo le caratteristiche generali del servizio di Amazon Elastic MapReduce chiamato Amazon EMR

#cloudaws

Page 2: PRD-027 - Amazon Elastic MapReduce (EMR)

● Amazon Elastic MapReduce è un servizio web che rende semplice e veloce processare grandi quantità di dati. Amazon EMR utilizza Hadoop, un framework open source, per distribuire e processare i dati attraverso un cluster formato da istanze EC2.

● Amazon Elastic MapReduce trova impiego in diverse applicazioni, come ad esempio: analisi dei log, indicizzazione delle pagine web, data warehousing, analisi finanziarie, simulazioni scientifiche e analisi molecolari della nuova scienza bioinformatica.

Page 3: PRD-027 - Amazon Elastic MapReduce (EMR)

● Hadoop utilizza un’architettura di elaborazione distribuita chiamata MapReduce, ideata inizialmente da Google per processare l’enorme quantità di dati che venivano raccolti da internet per il motore di ricerca.

⇒ http://hadoop.apache.org/

● In questo processo un’attività viene mappata ad un insieme di server per essere elaborata. Il risultato, del calcolo eseguito da tali server viene ridotto ad un singolo output. Un nodo, designato come master, controlla la distribuzione tra i vari server slave.

Page 4: PRD-027 - Amazon Elastic MapReduce (EMR)

● MapReduce è un framework introdotto da Google per semplificare la computazione distribuita su grandi quantità di dati in cluster di computer.

● La soluzione è indicata per elaborare grandi database, elevate quantità di file e risorse di diverso genere, parliamo normalmente di diversi Terabytes da analizzare e su cui bisogna generare un risultato.

● Il nome MapReduce è inspirato a due funzioni presenti nei linguaggi di programmazione funzionale, che sono chiamate rispettivamente map() e reduce().

Page 5: PRD-027 - Amazon Elastic MapReduce (EMR)
Page 6: PRD-027 - Amazon Elastic MapReduce (EMR)

● Map: Il nodo principale prende l’input, lo partiziona in sotto-problemi più piccoli e li distribuisce ai nodi operativi. Un nodo operativo rieseguire questo nuovamente, portando a una struttura multi-livello. Il nodo operativo processa i problemi più piccoli e restituisce la risposta al nodo principale.

● Reduce: Il nodo principale una volta prese le risposte di tutti i sotto-problemi le combina per ottenere una risposta o uscita, la risposta al problema che si tenta di risolvere. I dati di output, memorizzati su files, possono diventare l’input per una nuova fase di map() e reduce() concatenando tra di loro più elaborazioni consecutive di MapReduce.

Page 7: PRD-027 - Amazon Elastic MapReduce (EMR)

● Il servizio ha apportato varie modifiche ad Hadoop e ad altre applicazioni open source per potersi integrare senza problemi con i servizi AWS. Ad esempio, un Hadoop cluster in esecuzione su Amazon EMR utilizza: le istanze EC2 come dei server linux virtuali per la creazione di nodi master e slave, Amazon S3 per la memorizzazione dei dati in entrata e in uscita e CloudWatch per monitorare le prestazioni e lanciare eventuali allarmi.

● È possibile spostare i dati dentro e fuori una tabella definita in DynamoDB utilizzando Amazon Elastic MapReduce e Hive. Tutto questo viene gestito dal software di controllo EMR che avvia e gestisce il cluster Hadoop.

Page 8: PRD-027 - Amazon Elastic MapReduce (EMR)

input data

output results

Amazon Simple Storage Service (S3)

metrics

EC2 Instances

Clo

udW

atch

EMR

Integrazione con glialtri servizi AWS

Page 9: PRD-027 - Amazon Elastic MapReduce (EMR)

● Amazon EMR non si limita al solo framework Hadoop, i vari progetti open source che girano all’interno dell’architettura Hadoop possono funzionare anche in EMR. Infatti le applicazioni più conosciute: Hive, Pig, HBase, DistCp e Ganglia sono state integrate all’interno del servizio.

Page 10: PRD-027 - Amazon Elastic MapReduce (EMR)

● Facile da usare: grazie al servizio Amazon EMR è possibile lanciare un cluster in pochi minuti. Non vi dovrete preoccupare della creazione dei nodi, della configurazione del cluster o di Hadoop e degli aspetti di ottimizzazione del cluster. Amazon EMR si prende cura di tutti questi aspetti e voi potete concentrarvi solo sull’analisi dei risultati.

● Flessibile: il servizio garantisce il controllo completo sul cluster. E’ possibile accedere con diritti di root su ogni singola istanza, è possibile installare applicazioni aggiuntive e personalizzare ogni cluster. Amazon Elastic MapReduce (EMR) supporta anche diverse distribuzioni e applicazioni che sono state sviluppate per Hadoop.

● Elastico: è possibile passare da una a centinaia o migliaia di istanze di calcolo per poter processare i dati di qualsiasi ordine di grandezza. Si può facilmente aumentare o diminuire il numero di istanze necessarie e si paga solo per quello che si utilizza.

Page 11: PRD-027 - Amazon Elastic MapReduce (EMR)

DynamoDB

HDFS

Amazon S3

Redshift

Glacier

Page 12: PRD-027 - Amazon Elastic MapReduce (EMR)

● Hive: è un pacchetto open source di data warehouse che gira su Hadoop. Hive è gestito da Hive QL, un linguaggio basato su SQL che permette di strutturare, sintetizzare ed eseguire query sui dati. Hive QL va al di là dei normali standard SQL e grazie a queste caratteristiche è molto indicato per l’elaborazione di sorgenti dati non strutturati come possono essere file di testo o log. Amazon EMR ha eseguito parecchi miglioramenti ad Hive per poterlo integrare con i servizi DynamoDB e Amazon S3.

● Pig: è un pacchetto open source di analitica che gira su Hadoop. Pig è gestito da Pig Latin, un linguaggio SQL-like che permette agli utenti di strutturare, sintetizzare ed eseguire query sui dati. Amazon EMR ha eseguito parecchi miglioramenti del pacchetto, tra cui la possibilità di utilizzare file system multipli, caricare script jar personalizzati direttamente da Amazon S3 e altre funzionalità aggiuntive di elaborazione.

Page 13: PRD-027 - Amazon Elastic MapReduce (EMR)

● HBase: è un database distribuito, non relazionale, open source, creato sul modello di Google BigTable. Fu sviluppato come parte del progetto Hadoop dell’Apache Software Foundation ed eseguito su HDFS, fornendo capacità simili a quelle di BigTable. HBase offre un modo efficiente di immagazzinare grandi quantità di dati sparsi utilizzando la compressione e archiviazione basata su colonne. Inoltre, HBase fornisce una veloce ricerca dei dati in quanto vengono memorizzati in memoria invece che su disco.

● Impala: è uno strumento open source per l’esecuzione di query ad hoc, utilizzando la sintassi SQL. Invece di usare MapReduce, sfrutta una motore simile a quello presente nei sistemi dei database relazionali. Con questa architettura, è possibile interrogare i dati presenti in HDFS o le tabelle HBase molto velocemente sfruttando la capacità di Hadoop di elaborare tipi differenti di dati e fornendo lo schema in fase di runtime.

Page 14: PRD-027 - Amazon Elastic MapReduce (EMR)

Cloud Computing

Amazon Web Service 1

AmazonSNS

AmazonMFA

AmazonCloudFront

AmazonFree Trial

AmazonS3

AmazonGlacier

Amazon Web Service 2

ElasticTranscoder

Storagegateway

AmazonSES

AmazonCloudTrial

AmazonCloudWatch

AmazonSQS

AmazonDynamoDB

AmazonRDS

AmazonIAM

AmazonRoute 53

AmazonCloudSearch