Amazon EMR consente di effettuare il provisionig di tutta la capacità necessaria in modo semplice e veloce, aggiungendo e rimuovendo capacità in modo automatico o manuale. Questo risulta particolarmente utile quando non è possibile prevedere i requisiti di elaborazione oppure quando variano nel tempo. Ad esempio, se il picco di elaborazione avviene di notte, potrebbero occorrere solo 100 istanze durante il giorno e 500 istanze nelle ore notturne. Oppure potrebbe essere necessario disporre di grandi quantità di risorse per un breve intervallo di tempo. Con Amazon EMR puoi effettuare il provisioning di centinaia o migliaia di istanze, ricalibrandone le risorse in base ai requisiti di elaborazione, e terminarle appena l'attività per cui erano necessarie si conclude, in modo da non pagare per capacità non utilizzata.

Nozioni di base su Amazon EMR

Crea un account gratuito

Serve assistenza? Scrivici!

elastic

Sono due le opzioni che consentono di aggiungere o rimuovere capacità:

Distribuzione di più cluster: quando occorrono più risorse, puoi avviare un nuovo cluster, terminandolo quando non è più necessario. Non è previsto alcun limite al numero di cluster che è possibile avviare. Puoi utilizzare diversi cluster quando sono presenti più utenti o più applicazioni. Ad esempio, puoi memorizzare i dati di input in Amazon S3 e avviare un cluster per ogni applicazione che deve elaborare quei dati. Un cluster può essere ottimizzato per la CPU, un secondo cluster può essere ottimizzato per lo storage, ecc.

Ridimensionamento di un cluster in esecuzione: con Amazon EMR è semplice ricalibrare automaticamente o ridimensionare manualmente un cluster in esecuzione. Potrebbe essere necessario aumentare le risorse per aggiungere temporaneamente potenza di elaborazione al cluster, oppure ridurle per risparmiare sulla capacità inattiva. Ad esempio, alcuni clienti aggiungono centinaia di istanze ai loro cluster quando è prevista l'elaborazione di batch, rimuovendo poi le istanze non necessarie al termine dell'attività. Al momento dell'aggiunta di istanze al cluster, EMR utilizza la capacità allocata appena risulta disponibile. In fase di ridimensionamento, EMR sceglierà in maniera proattiva i nodi inattivi per ridurre l'impatto sulle attività in esecuzione.

Amazon EMR è progettato per ridurre i costi derivanti dall'elaborazione di grandi quantità di dati. Questo grazie a tariffe ridotte basate sull'utilizzo al secondo, elasticità, integrazione con Amazon EC2 Spot, istanze riservate di Amazon EC2 e integrazione con Amazon S3.

Tariffe ridotte basate sull'utilizzo al secondo: le tariffe di Amazon EMR si basano sull'utilizzo al secondo, con una tariffa minima di 1 minuto e partono da 0,015 USD per ora-istanza per un'istanza small (131,40 USD all'anno). Per ulteriori informazioni, consulta la sezione Prezzi.

Integrazione con le istanze Spot di EC2: le istanze Spot di Amazon EC2 consentono di stabilire il prezzo che desideri pagare per la capacità che ti occorre. È sufficiente specificare la tariffa oraria massima che sei disposto a pagare per un dato tipo di istanza. Finché l'offerta supera il prezzo Spot, potrai utilizzare le istanze che ottieni, spesso ad un prezzo molto inferiore rispetto alla corrispondente istanza on demand. Il prezzo Spot fluttua in base alla domanda e all'offerta delle istanze, ma non pagherai mai una cifra superiore a quella che hai specificato. Con Amazon EMR è semplice utilizzare le istanze Spot per risparmiare tempo e denaro. I cluster di Amazon EMR includono "nodi principali" e "nodi di task" (solo i primi in esecuzione in HDFS); i nodi di task sono la scelta ottimale per le istanze Spot, perché se le istanze vengono interrotte a causa dell'aumento del prezzo Spot, non perderai i dati salvati in HDFS. Ulteriori informazioni sui nodi principali e sui nodi di task.

Integrazione con le istanze riservate di Amazon EC2: con le istanze riservate di Amazon EC2 viene mantenuta l'elasticità di elaborazione e i relativi vantaggi, riducendo però i costi e consentendo di prenotare la capacità. Con le istanze riservate, si paga una tariffa ridotta una-tantum, ottenendo un notevole sconto sulla tariffa al secondo per quell'istanza. Con Amazon EMR è semplice utilizzare istanze riservate per risparmiare fino al 65% rispetto al prezzo delle istanze on demand.

Elasticità: poiché il ridimensionamento delle risorse automatico è semplice in Amazon EMR, non occorre più acquisire risorse e capacità in eccesso. Ad esempio, non occorre calcolare la quantità di dati che uno o più cluster dovranno gestire tra 6 mesi, né quando potranno verificarsi eventuali picchi di elaborazione. Con Amazon EMR non è più necessario acquisire risorse in previsione di picchi di domanda, perché è possibile aggiungere e rimuovere capacità in qualsiasi momento.

Integrazione con Amazon S3: il file system EMR o EMRFS (EMR File System) consente ai cluster di EMR di utilizzare Amazon S3 come object store per Hadoop in modo efficiente e sicuro. Sarà quindi possibile memorizzare i dati in Amazon S3 e utilizzare diversi cluster di Amazon EMR per elaborare lo stesso set di dati. Ogni cluster può essere ottimizzato per un determinato carico di lavoro per ottenere la massima efficienza, mentre in genere vengono assegnati a un singolo cluster svariati carichi di lavoro con requisiti diversi. Ad esempio, puoi prevedere un cluster ottimizzato per le operazioni I/O e un altro ottimizzato per la CPU, ognuno dei quali elabora lo stesso set di dati contenuto in Amazon S3. Inoltre, memorizzando i dati in entrata e in uscita in Amazon S3, puoi arrestare i cluster quando non sono più necessari. 

EMRFS consente prestazioni elevate in lettura e in scrittura su Amazon S3, supporta la crittografia lato server e lato client tramite AWS Key Management Service (KMS) e chiavi gestite dall'utente, e offre una vista opzionale che consente di verificare la consistenza read-after-write e a livello di elenco per gli oggetti monitorati nei relativi metadati. Infine, i cluster di Amazon EMR possono usare sia EMRFS sia HDFS, così non sarà necessario scegliere tra storage su cluster o in Amazon S3.

Integrazione con il catalogo dati AWS Glue: è possibile utilizzare il catalogo dati AWS Glue come repository di metadati gestito per memorizzare i metadati di tabelle esterne per Apache Spark e Apache Hive. Inoltre, offre rilevamento automatico di schemi e storico delle versioni degli schemi. In questo modo è più semplice conservare i metadati delle tabelle esterne in Amazon S3 al di fuori del cluster.

Con Amazon EMR, puoi impiegare più di un datastore, ad esempio Amazon S3, HDFS (Hadoop Distributed File System) e Amazon DynamoDB.

DetailsPage_EMR-Diagram

Amazon S3: Amazon S3 è un servizio di storage altamente durevole, scalabile, sicuro, veloce ed economico. Con il file system EMR o EMRFS (EMR File System), Amazon EMR è in grado di utilizzare Amazon S3 come object store per Hadoop in modo efficiente e sicuro. Amazon EMR migliora molte funzionalità di Hadoop, consentendo ad esempio di elaborare in modo ottimale grandi quantità di dati memorizzati in Amazon S3. Inoltre, EMRFS facilita la verifica di consistenza read-after-write e a livello di elenco per gli oggetti in Amazon S3. EMRFS supporta la crittografia lato server o lato client per l'elaborazione di oggetti crittografati di Amazon S3, ed è possibile utilizzare AWS Key Management Service (KMS) oppure un fornitore di chiavi personalizzate.

Quando viene avviato un cluster, Amazon EMR inoltra i dati da Amazon S3 a tutte le istanze al suo interno e avvia immediatamente l'elaborazione. Uno dei vantaggi di memorizzare i dati in Amazon S3 ed elaborarli con Amazon EMR è che puoi usare diversi cluster per elaborare gli stessi dati. Ad esempio, puoi disporre di un cluster di sviluppo in Hive, ottimizzato per la memoria, e un cluster di produzione in Pig, ottimizzato per la CPU, che usano entrambi lo stesso set di dati di input.

HDFS (Hadoop Distributed File System): HDFS è il file system di Hadoop. L'attuale topologia di Amazon EMR prevede il raggruppamento delle proprie istanze in 3 gruppi di istanze logici: Master Group, che esegue il servizio YARN Resource Manager e HDFS Name Node; Core Group, che esegue HDFS DataNode Daemon e il servizio YARN Node Manager e Task Group, che esegue il servizio YARN Node Manager. Amazon EMR installa HDFS sullo storage associato alle istanze nel Core Group.

Ogni istanza EC2 viene fornita con una quantità fissa di storage, nota come "instance store", associata a un'istanza. È inoltre possibile personalizzare lo storage su un'istanza aggiungendovi volumi di Amazon EBS. Amazon EMR consente di aggiungere tipi di volumi General Purpose (SSD), Provisioned (SSD) e Magnetic. Alla terminazione del cluster, i dati sui volumi EBS aggiunti a un cluster EMR non vengono mantenuti. Una volta terminato il cluster, EMR cancella automaticamente i dati.

È anche possibile configurare la crittografia completa per HDFS utilizzando una configurazione di sicurezza di Amazon EMR, oppure creare zone di crittografia HDFS con Key Management Server di Hadoop

Amazon DynamoDB: Amazon DynamoDB è un servizio di database NoSQL rapido e completamente gestito. Amazon EMR si integra con Amazon DynamoDB, consentendoti di elaborare i dati memorizzati in Amazon DynamoDB in modo rapido ed efficiente e di trasferire dati tra Amazon DynamoDB, Amazon S3 e HDFS in Amazon EMR.

Altri datastore AWS: gli utenti di Amazon EMR usano anche Amazon Relational Database Service (un servizio Web che semplifica configurazione, funzionamento e scalabilità di database relazionali nel cloud), Amazon Glacier (un servizio di storage dai costi estremamente contenuti che fornisce storage durevole per l'archiviazione e il backup dei dati) e Amazon Redshift (un servizio di data warehousing rapido e gestito, con dimensioni nell'ordine dei petabyte). AWS Data Pipeline è un servizio Web che consente di elaborare e trasferire dati tra più servizi di elaborazione e storage AWS (tra cui Amazon EMR) e origini dati locali, a specifici intervalli di tempo e con la massima affidabilità.

Amazon EMR supporta molti strumenti noti e affidabili per Hadoop, tra cui Hive, Pig, HBase e Impala. Inoltre, può eseguire framework di elaborazione distribuiti (oltre ad Hadoop MapReduce) quali Spark e Presto, tramite operazioni di bootstrap. È anche possibile utilizzare Hue e Zeppelin come interfaccia grafica per interagire con le applicazioni nel cluster.

Hive è un pacchetto open source di data warehouse e analisi eseguibile con Hadoop. Hive funziona con Hive QL, un linguaggio basato su SQL che consente di creare strutture, riepiloghi e query di dati. Hive QL ha più funzioni di SQL, supporta le funzioni di mappatura/riduzione e permette l'uso di tipi di dati estensibili complessi definiti dall'utente quali JSON e Thrift. Grazie a questa funzionalità, è possibile elaborare origini dati complesse e non strutturate quali documenti di testo e file di log. Hive consente l'utilizzo di estensioni utente tramite funzioni definite dall'utente scritte in Java. Amazon EMR migliora molte funzionalità di Hive, come l'integrazione diretta con Amazon DynamoDB e Amazon S3. Ad esempio, con Amazon EMR è possibile caricare automaticamente partizioni di tabelle da Amazon S3, scrivere nelle tabelle in Amazon S3 senza impiegare file temporanei e accedere alle risorse in Amazon S3, quali script, operazioni di mappatura o riduzione e librerie aggiuntive. Ulteriori informazioni su Hive e Amazon EMR.

Pig è un pacchetto open source di analisi eseguibile con Hadoop. Pig funziona con Pig Latin, un linguaggio simile a SQL che consente di creare strutture, riepiloghi e query di dati. Oltre alle operazioni di tipo SQL, Pig Latin supporta le funzioni di mappatura/riduzione e permette l'uso di tipi di dati estensibili complessi definiti dall'utente. Grazie a questa funzionalità, è possibile elaborare origini dati complesse e non strutturate quali documenti di testo e file di log. Pig consente l'utilizzo di estensioni utente tramite funzioni definite dall'utente scritte in Java. Amazon EMR migliora molte funzionalità di Pig, consentendo ad esempio di impiegare diversi file system (in genere Pig può accedere a un solo file system remoto), caricare JAR e script dei clienti da Amazon S3 (ad es. "REGISTER s3:///my-bucket/piggybank.jar") e sfruttare le funzioni aggiuntive per l'elaborazione di parametri String e DateTime. Ulteriori informazioni su Pig e Amazon EMR.

HBase è un database open source non relazionale distribuito, creato sul modello di BigTable di Google. È stato sviluppato nell'ambito del progetto Hadoop di Apache Software Foundation e viene eseguito con il file system distribuito Hadoop (HDFS) per fornire funzionalità di tipo BigTable per Hadoop. HBase fornisce un modo efficiente e con tolleranza ai guasti di memorizzare grandi quantità di dati a bassa densità utilizzando storage e compressione basati su colonne. Inoltre, HBase offre consultazione rapida dei dati, perché li memorizza nella memoria cache. HBase è ottimizzato per operazioni di scrittura sequenziali ed è particolarmente efficiente per aggiornamenti, eliminazioni ed inserimenti in batch. HBase è ottimizzato per Hadoop, condividendone il file system e fungendo da input ed output diretto per i relativi processi. Inoltre, HBase si integra con Apache Hive, consentendo query di tipo SQL su tabelle HBase, unioni con tabelle basate su Hive e supporto per JDBC (Java Database Connectivity). Con Amazon EMR, puoi usare Amazon S3 come datastore per Apache HBase, riducendo i costi e la complessità operativa. Se usi HDFS come datastore, puoi effettuare il backup di HBase in Amazon S3 ed eseguirne il ripristino da un backup precedente. Ulteriori informazioni su HBase e Amazon EMR.

Phoenix consente l'uso di funzionalità SQL a bassa latenza con proprietà ACID sui dati memorizzati in Apache HBase. Creare indici secondari per ottenere migliori prestazioni è semplice, così come creare visualizzazioni diverse sulla stessa tabella HBase. Ulteriori informazioni su Phoenix per Amazon EMR.

Impala è uno strumento open source dell'ecosistema Hadoop per la creazione di query interattive ad hoc usando la sintassi SQL. Invece di impiegare MapReduce, sfrutta un motore a elaborazione parallela o MPP (Massively Parallel Processing) simile a quello che si trova nei comuni sistemi di gestione dei database relazionali o RDBMS (Relational Database Management System). Ulteriori informazioni su Impala e Amazon EMR.

Hue è un'interfaccia utente open source per Hadoop che semplifica l'esecuzione e lo sviluppo di query in Hive, la gestione dei file in HDFS, l'esecuzione e lo sviluppo di script in Pig e la gestione delle tabelle. Hue in Amazon EMR si integra inoltre con Amazon S3, in modo da inoltrarvi le query in modo diretto e trasferire file tra HDFS e Amazon S3 con la massima semplicità. Ulteriori informazioni su HUE e Amazon EMR.

Spark è un motore dell'ecosistema Hadoop che velocizza l'elaborazione di set di dati di grandi dimensioni. Impiega set di dati resilienti o RDD (Resilient Distributed Dataset) in memoria con tolleranza ai guasti e grafi aciclici diretti o DAG (Directed Acyclic Graphs) per definire le trasformazioni dei dati. Spark include inoltre Spark SQL, Spark Streaming, MLlib e GraphX. Ulteriori informazioni su Spark per Amazon EMR.

Presto è un motore di query SQL open source distribuito per l'analisi di dati ad hoc a bassa latenza. Supporta lo standard SQL ANSI, incluse query complesse, aggregazioni, join e funzioni finestra. Presto è in grado di elaborare dati da una moltitudine di origini di dati, incluso il file system distribuito Hadoop (HDFS) e Amazon S3. Ulteriori informazioni su Presto per Amazon EMR.

Zeppelin è un'interfaccia grafica open source che crea notebook interattivi e collaborativi per la visualizzazione di dati mediante Spark. Per manipolare i dati e visualizzare rapidamente i risultati, è possibile usare Scala, Python, SQL (tramite Spark SQL) o HiveQL. I notebook di Zeppelin possono essere condivisi tra diversi utenti, mentre le visualizzazioni possono essere pubblicate in pannelli di controllo esterni. Ulteriori informazioni su Zeppelin per Amazon EMR.

Oozie è un sistema di pianificazione dei flussi di lavoro per Hadoop con cui è possibile creare grafi aciclici diretti o DAG (Directed Acyclic Graphs) di azioni. Inoltre consente di attivare i flussi di lavoro di Hadoop in base ad azioni o tempi predefiniti. Ulteriori informazioni su Oozie per Amazon EMR.

Tez è un framework di esecuzione per Hadoop YARN che offre prestazioni elevate tramite piani di query e gestione risorse ottimizzati. Tez può essere impiegato con Apache Hive e Apache Pig invece che con Hadoop MapReduce, ed è possibile visualizzare i piani di esecuzione tramite l'interfaccia. Ulteriori informazioni su Tez per Amazon EMR.

Flink è un motore di flussi di dati in streaming che semplifica l'elaborazione di flussi in tempo reale su origini dati ad elevato throughput. Supporta semantica di eventi temporali per eventi di esaurimento, semantica di elaborazione singola, controlli di congestione e API ottimizzate per la scrittura con applicazioni in streaming e in batch. Ulteriori informazioni su Flink per EMR.

Altre applicazioni: Amazon EMR supporta inoltre una serie di strumenti e applicazioni molto comuni quali R, Apache MXNet (apprendimento profondo), Mahout (apprendimento automatico), Ganglia (monitoraggio), Accumulo (database NoSQL protetti), Sqoop (connettore di database relazionali), HCatalog (gestione di tabelle e storage) e molti altri. Il team di Amazon EMR conserva un repository open source di operazioni di bootstrap che può essere usato per installare software aggiuntivi, configurare il cluster o semplicemente da prendere da esempio per scrivere le proprie operazioni di bootstrap.

Personalizzazione del cluster: scegli quale tipi di istanza EC2 desideri usare nel tuo cluster (standard, memoria extra, CPU extra, I/O extra, ecc.) in base ai requisiti dell'applicazione. Puoi accedere in root a qualsiasi istanza, personalizzando il cluster secondo le tue esigenze. Ulteriori informazioni sui tipi di istanze Amazon EC2 supportate.

Debug delle applicazioni: quando scegli di eseguire il debug di un cluster, Amazon EMR archivia i file di log in Amazon S3 e li indicizza. Potrai esplorare i log e visualizzare la cronologia delle attività in un secondo momento tramite un'interfaccia grafica intuitiva. Ulteriori informazioni sul debug di processi di Amazon EMR.

Monitoraggio del cluster: puoi usare Amazon CloudWatch per monitorare 23 parametri personalizzati di Amazon EMR, ad esempio il numero medio di attività di mappatura e riduzione. Potrai anche assegnare ai parametri degli allarmi. Ulteriori informazioni sul monitoraggio di cluster Amazon EMR.

Risposta ad eventi: puoi usare i tipi di evento correlati ad Amazon EMR in Amazon CloudWatch Events per rispondere a modifiche di stato di cluster Amazon EMR. Utilizzando regole semplici e rapide da impostare, potrai creare corrispondenze tra eventi e instradarli in argomenti Amazon SNS, funzioni AWS Lambda, code Amazon SQS e non solo. Ulteriori informazioni sugli eventi di cluster Amazon EMR.

Pianificazione di flussi di lavoro ricorrenti: con AWS Data Pipeline, potrai pianificare i flussi di lavoro ricorrenti che impiegano Amazon EMR. AWS Data Pipeline è un servizio Web che consente di elaborare e trasferire dati tra più servizi di elaborazione e storage AWS e origini dati locali, a specifici intervalli di tempo e con la massima affidabilità. Ulteriori informazioni su Amazon EMR e Data Pipeline

Cascading: Cascading è una libreria Java open source che API di query, un sistema di pianificazione per query e un sistema di pianificazione di processi per la creazione e l'esecuzione di applicazioni Hadoop MapReduce. Le applicazioni sviluppate con Cascading sono compilate e predisposte per l'installazione automatica in file JAR compatibili con Hadoop simili a quelli di applicazioni Hadoop native. Ulteriori informazioni su Cascading e Amazon EMR.

Apprendimento profondo: impiega i framework di apprendimento profondo più utilizzati, ad esempio Apache MXNet, per definire, addestrare e distribuire reti neurali profonde. Potrai avvalerti di questi framework su cluster Amazon EMR con istanze GPU. Ulteriori informazioni su MXNet per Amazon EMR.

Controllo degli accessi di rete al cluster: puoi avviare un cluster in Amazon Virtual Private Cloud (VPC), una sezione logicamente isolata del cloud AWS. Avrai così il controllo completo sul tuo ambiente virtuale di rete, incluse la selezione dell'intervallo di indirizzi IP, la creazione di sottoreti e la configurazione di tabelle di routing e di gateway di rete. Ulteriori informazioni su Amazon EMR e Amazon VPC.

Gestione di utenti, autorizzazioni e crittografia: puoi usare gli strumenti di AWS Identity and Access Management (IAM), ad esempio IAM Users and Roles per tenere sotto controllo accessi e autorizzazioni. Ad esempio, puoi autorizzare un determinato utente ad accedere in lettura ma non in scrittura ai cluster. Inoltre, è possibile usare le configurazioni di sicurezza di Amazon EMR per impostare le opzioni di crittografia su dati inattivi o in transito, con supporto per la crittografia di Amazon S3 e l'autenticazione di KerberosUlteriori informazioni sul controllo degli accessi al cluster e sulle opzioni di crittografia di Amazon EMR.

Installazione di software aggiuntivo: è possibile utilizzare le operazioni di bootstrap o un'AMI di Amazon Linux per installare software aggiuntivo sul cluster. Le operazioni bootstrap sono script eseguiti sui nodi del cluster in cui Amazon EMR avvia il cluster stesso. Vengono eseguiti prima dell'avvio di Hadoop e prima che il nodo inizi l'elaborazione dei dati. Inoltre, è possibile precaricare e utilizzare software su AMI Amazon Linux personalizzate. Ulteriori informazioni su operazioni di bootstrap di Amazon EMR e AMI Amazon Linux personalizzate.

Copia efficiente dei dati: puoi spostare elevati volumi di dati tra Amazon S3 e HDFS oppure tra i bucket di Amazon S3 utilizzando l'estensione dello strumento open source Distcp S3DistCp di Amazon EMR, che utilizza MapReduce per il trasferimento di grandi quantità di dati. Ulteriori informazioni su S3DistCp.

Hadoop Streaming: Streaming è un'utilità inclusa in Hadoop che consente di sviluppare file eseguibili di MapReduce in linguaggi diversi da Java. Streaming viene implementata sotto forma di file JAR. Ulteriori informazioni su Hadoop Streaming con Amazon EMR.

JAR personalizzati: scrivi un programma in Java, compilalo secondo la versione di Hadoop che desideri utilizzare e caricalo in Amazon S3. Potrai inviare processi di Hadoop al cluster mediante l'interfaccia JobClient di Hadoop. Ulteriori informazioni sull'elaborazione di JAR personalizzati con Amazon EMR.

Amazon EMR può essere usato con un'ampia gamma di strumenti software di terze parti:

Trasferimento dati

Monitoraggio

Ottimizzazione delle prestazioni

IDE grafico

Distribuzioni Hadoop

Business intelligence e visualizzazione

Business Intelligence

Esplorazione dati

Business intelligence e visualizzazione

IDE grafico

Business intelligence e visualizzazione