- Analisi›
- Amazon EMR›
- Apache Spark su EMR
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 della linea di comando AWS (AWS CLI) o l'API di Amazon EMR. È anche possibile sfruttare altre funzionalità di Amazon EMR, ad esempio la rapida connettività 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.
Funzionalità 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 nei 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, archivia dati di input, output, e intermedi in memoria come dataframe resilienti, grazie ai quali le prestazioni di elaborazione di carichi di lavoro iterativi e interattivi risultano migliori senza pesare sul costo delle operazioni I/O.
Apache Spark offre supporto nativo per Java, Scala, SQL e Python che fornisce un'ampia varietà di linguaggi 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 Spark in modo interattivo con Python o Scala in diversi modi: direttamente nella shell di Spark, tramite EMR Studio o notebook Jupyter nel cluster. Il supporto per Apache Hadoop 3.0 in EMR 6.0 consiste nell'offrire supporto per il container Docker con la finalità di semplificare la gestione delle dipendenze. È anche possibile ricorrere a notebook EMR (basati su Jupyter) indipendenti dal cluster oppure a Zeppelin, per creare notebook interattivi e collaborativi per la visualizzazione e la navigazione dei 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 di 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 deep learning quali Apache MXNet con le applicazioni Spark. L'integrazione con AWS Step Functions consente all'utente di aggiungere automazione e orchestrazione del flusso di lavoro serverless alle sue applicazioni.
È possibile avviare processi 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 di EMR per aggiungere e rimuovere capacità in modo dinamico e avviare cluster temporanei o a lungo termine in funzione 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 utilizzare il Catalogo dati AWS Glue per archiviare i metadati della tabella Spark SQL o utilizzare Amazon SageMaker con le pipeline di Spark machine learning. 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 all'utente 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.
L'agente di aggiornamento Apache Spark identifica automaticamente le modifiche delle API e le variazioni comportamentali nelle applicazioni PySpark e Scala. Gli ingegneri possono avviare gli aggiornamenti direttamente da SageMaker Unified Studio o dall'IDE di loro scelta servendosi della compatibilità MCP (Model Context Protocol). Durante il processo di aggiornamento, l'agente analizza il codice esistente e suggerisce modifiche specifiche: in questo modo, gli ingegneri possono esaminarlo e approvarlo prima dell'implementazione. L'agente convalida la correttezza funzionale tramite convalide della qualità dei dati. L'agente attualmente supporta gli aggiornamenti di Spark delle versioni da 2.4 a 3.5 e mantiene la precisione dell'elaborazione dati durante tutto il processo di aggiornamento.
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 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 machine learning. Puoi migliorare le funzionalità di Amazon SageMaker collegando l'istanza del notebook a un cluster Apache Spark in esecuzione in Amazon EMR, con Amazon SageMaker Spark per formare facilmente modelli di addestramento e di hosting.
Utilizza 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 Studio, notebook EMR, notebook Zeppelin o gli strumenti di business intelligence tramite connessioni ODBC e JDBC.
Testimonianze dei clienti
Yelp
Il team di Yelp che si occupa di individuare i destinatari 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 addestrare modelli di machine learning, Yelp ha aumentato i guadagni e la frequenza di clic delle proprie inserzioni.
The Washington Post
Il Washington post utilizza Apache Spark in Amazon EMR per creare modelli che ottimizzano il motore di raccomandazione del sito Web e migliorare il coinvolgimento e la soddisfazione dei lettori. Il quotidiano sfrutta la connettività efficiente 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 in cui l'utente cerca approfondimenti. Per risparmiare sui costi, Krux utilizza cluster Amazon EMR temporanei con capacità spot di Amazon EC2, nonché Amazon S3 con EMRFS come livello di dati per Apache Spark. Scopri di più
GumGum
GumGum, una piattaforma pubblicitaria di annunci illustrati e pop-up, utilizza Spark in Amazon EMR per eseguire previsioni di inventario, elaborare log di clickstream e completare analisi puntuali di dati non strutturati in Amazon S3. I miglioramenti apportati alle prestazioni 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 in modo diversificato nel settore multimediale e dell'informazione con clienti che visualizzano i suoi contenuti in 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à di specifici articoli e temi. 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 da quei dati, CrowdStrike è in grado di analizzarne l'evento e identificare la presenza di attività pericolose. Scopri di più