Apache Spark in Amazon EMR

Perché Apache Spark su EMR?

Amazon EMR è l'ambiente migliore per eseguire Apache Spark. È possibile creare in modo rapido e veloce cluster Spark tramite la Console di gestione AWS, l'interfaccia a riga di comando o l'API di Amazon EMR. È anche possibile sfruttare altre funzionalità di Amazon EMR, ad esempio le rapide connessioni di Amazon S3 tramite il file system di Amazon EMR (EMRFS), l'integrazione con il marketplace di istanze spot di Amazon EC2 e il Catalogo dati AWS Glue, nonché la funzione di scalabilità gestita da EMR per aggiungere o rimuovere istanze dal cluster. AWS Lake Formation offre un controllo granulare degli accessi, mentre l'integrazione con AWS Step Functions aiuta a orchestrare le pipeline di dati. EMR Studio (anteprima) è un ambiente di sviluppo integrato (IDE) che semplifica lo sviluppo, la visualizzazione e il debug delle applicazioni di data engineering e data science scritte in R, Python, Scala e PySpark per i data scientist e gli ingegneri dei dati. EMR Studio fornisce notebook Jupyter completamente gestiti e strumenti come Spark UI e YARN Timeline Service per semplificare il debug. Notebook EMR semplifica la sperimentazione e la creazione di applicazioni con Spark. Inoltre, è possibile utilizzare Apache Zeppelin per creare notebook interattivi e collaborativi per la visualizzazione dei dati tramite Spark.

Ottieni ulteriori informazioni su Apache Spark in questa pagina

Caratteristiche e vantaggi

EMR è dotato del runtime di Amazon EMR per Apache Spark, un ambiente di runtime con prestazioni ottimizzate per Apache Spark attivato per impostazione predefinita sui cluster Amazon EMR. Il runtime di Amazon EMR per Apache Spark può essere oltre 3 volte più veloce dei cluster senza il runtime EMR e ha una compatibilità API del 100% con Apache Spark standard. Grazie a prestazioni ottimizzate, i carichi di lavoro vengono eseguiti più rapidamente il che consente di risparmiare sui costi di calcolo, senza dover apportare modifiche alle applicazioni.

Spark consente di creare piani di query efficienti per la trasformazione dei dati utilizzando un motore di esecuzione di grafi aciclici diretti. Spark, inoltre, memorizza dati in ingresso, in uscita e parziali in memoria come dataframe resilienti o RDD (Resilient Distributed Dataset), grazie ai quali le prestazioni di elaborazione di carichi di lavoro iterativi ed interattivi risultano migliori senza pesare sulle operazioni I/O.

Apache Spark offre supporto nativo per Java, Scala, SQL e Python che fornisce un'ampia libertà per quanto riguarda il linguaggio di programmazione delle applicazioni. È inoltre possibile inviare query SQL o HiveQL mediante il modulo Spark SQL. In aggiunta alle applicazioni in esecuzione, è possibile usare l'API di Spark in modo interattivo con Python o Scala direttamente nella shell di Spark o tramite EMR Studio o i notebook Jupyter nel cluster. Il supporto per Apache Hadoop 3.0 in EMR 6.0 offre il supporto per il container Docker che consente di semplificare la gestione delle dipendenze. È anche possibile avvalersi di notebook EMR (basati su Jupyter) indipendenti dal cluster oppure di Zeppelin per creare notebook interattivi e collaborativi per la visualizzazione e la navigazione nei dati. È possibile ottimizzare ed eseguire il debug dei carichi di lavoro nella console EMR che dispone di un server della cronologia di Spark persistente fuori cluster.

Apache Spark include diverse librerie, che aiutano a creare applicazioni per machine learning (MLlib), elaborazione di flussi (Spark Streaming) ed elaborazione di grafi (GraphX). Queste librerie sono integrate nell'ecosistema di Spark e possono essere impiegate senza ulteriori configurazioni per diversi casi d'uso. Inoltre, è possibile utilizzare framework di apprendimento profondo quali Apache MXNet con le applicazioni Spark. L'integrazione con AWS Step Functions consente di aggiungere automazione e orchestrazione del flusso di lavoro serverless alle tue applicazioni.

È possibile avviare un processo di Apache Spark con l'API Step di EMR, utilizzare Spark con EMRFS per accedere direttamente ai dati in S3, ridurre i costi utilizzando la capacità di istanze spot EC2, impiegare la scalabilità gestita EMR per aggiungere e rimuovere capacità in modo dinamico e avviare cluster temporanei o a lungo termine a seconda del carico di lavoro. È anche possibile configurare la crittografia tramite Spark e l'autenticazione tramite Kerberos con la massima semplicità mediante una configurazione di sicurezza di EMR. Inoltre, è possibile avvalersi del Catalogo dati AWS Glue per memorizzare i metadati della tabella Spark SQL o impiegare Amazon SageMaker in pipeline di machine learning Spark. EMR installa e gestisce Apache Spark in Hadoop YARN e consente di aggiungere al cluster altre applicazioni di Big Data. EMR con Apache Hudi consente di gestire in modo più efficiente l'acquisizione di dati di modifica (Change Data Capture/CDC) e aiuta con le normative sulla privacy come GDPR e CCPA semplificando la cancellazione dei record. Fai clic qui per ulteriori informazioni sulle funzionalità di EMR.

Casi d'uso

Acquisisci ed elabora dati in tempo reale da Amazon Kinesis, Apache Kafka o altri flussi di dati con Spark Streaming in EMR. Esegui analisi di flussi con tolleranza ai guasti e salvataggio dei risultati in S3 o HDFS su cluster.

Apache Spark in Amazon EMR include MLlib, che offre una serie di algoritmi scalabili di machine learning; in alternativa, potrai impiegare librerie personalizzate. Salvando i set di dati in memoria durante i processi, Spark ottiene prestazioni di alto livello per le query iterative, comuni nei carichi di lavoro di apprendimento automatico. Puoi migliorare le funzionalità di Amazon SageMaker collegando l'istanza del notebook a un cluster Apache Spark in esecuzione su Amazon EMR, con Amazon SageMaker Spark per formare facilmente modelli e modelli di hosting.

Usa Spark SQL per query interattive a bassa latenza con SQL o HiveQL. Spark in EMR sfrutta EMRFS per offrire accesso ad hoc ai set di dati in S3. Sarà inoltre possibile utilizzare EMR, i notebook EMR, i notebook Zeppelin o gli strumenti di business intelligence tramite connessioni ODBC e JDBC.

Storie di successo

  • Yelp

    Il team di Yelp che si occupa del pubblico delle inserzioni crea modelli predittivi per determinare le probabilità che un utente interagisca con un'inserzione. Utilizzando Apache Spark in Amazon EMR per elaborare grandi quantità di dati e alimentare modelli di apprendimento automatico, Yelp ha aumentato i guadagni e la percentuale di clic delle proprie inserzioni.

  • The Washington Post

    Il Washington post usa Apache Spark in Amazon EMR per creare modelli sui quali si basa il motore di raccomandazione del sito Web e migliorare il coinvolgimento e la soddisfazione dei lettori. Il quotidiano sfrutta la connettività di Amazon EMR con Amazon S3 per aggiornare i modelli quasi in tempo reale.

  • Krux

    Krux impiega diversi carichi di lavoro di machine learning e generiche attività di elaborazione tramite Apache Spark per la propria piattaforma di gestione dei dati. Per risparmiare sui costi, Krux usa cluster Amazon EMR temporanei con istanze Spot di Amazon EC2, nonché Amazon S3 con EMRFS come layer dei dati per Apache Spark.

    Scopri di più »
  • GumGum

    GumGum, una piattaforma pubblicitaria di annunci illustrati e pop-up, usa Spark in Amazon EMR per eseguire previsioni di inventario, elaborare log di clickstream e completare analisi ad hoc di dati non strutturati in Amazon S3. Il miglioramento alle prestazioni garantito da Spark ha consentito a GumGum di risparmiare tempo e denaro nei propri flussi di lavoro.

    Scopri di più »
  • Hearst Corporation

    Hearst Corporation è una grande società che opera nel settore multimediale e dell'informazione con oltre 200 siti Web di proprietà. Grazie ad Apache Spark Streaming in Amazon EMR, la redazione di Hearst è in grado di monitorare in tempo reale la popolarità dei singoli articoli.

    Scopri di più »
  • CrowdStrike

    CrowdStrike fornisce protezione dagli attacchi informatici per endpoint. Utilizza Amazon EMR con Spark per elaborare centinaia di terabyte di dati di eventi e riassumerli in descrizioni comportamentali di alto livello sugli host. A partire dai dati, CrowdStrike è in grado di analizzare gli eventi che si verificano e identificare la presenza di attività pericolose.

    Scopri di più »