Architettura e livelli di servizio - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Architettura e livelli di servizio

L'architettura dei EMR servizi Amazon è composta da diversi livelli, ognuno dei quali fornisce determinate capacità e funzionalità al cluster. Questa sezione fornisce una panoramica dei livelli e i componenti di ciascuno di essi.

Storage

Il livello di archiviazione include diversi file system utilizzati con il cluster. Esistono diversi tipi di opzioni di archiviazione, come indicato di seguito.

File system distribuito Hadoop () HDFS

Hadoop Distributed File System (HDFS) è un file system distribuito e scalabile per Hadoop. HDFSdistribuisce i dati archiviati tra le istanze del cluster, archiviando più copie dei dati su istanze diverse per garantire che nessun dato vada perso in caso di guasto di una singola istanza. HDFSè uno storage temporaneo che viene recuperato quando si chiude un cluster. HDFSè utile per memorizzare nella cache i risultati intermedi durante l' MapReduce elaborazione o per carichi di lavoro con I/O casuali significativi.

Per ulteriori informazioni, consulta questa guida o Opzioni e comportamento di archiviazione delle istanze consulta la Guida per HDFSl'utente sul sito Web di Apache Hadoop.

EMRFile system () EMRFS

Utilizzando il EMR File System (EMRFS), Amazon EMR estende Hadoop per aggiungere la possibilità di accedere direttamente ai dati archiviati in Amazon S3 come se si trattasse di un file system. HDFS Puoi usare uno dei due HDFS o Amazon S3 come file system nel tuo cluster. Molto spesso, Amazon S3 viene utilizzato per archiviare i dati di input e output e i risultati intermedi vengono archiviati in. HDFS

File system locale

Il file system locale fa riferimento a un disco con connessione locale. Quando crei un cluster Hadoop, ogni nodo viene creato da un'EC2istanza Amazon dotata di un blocco preconfigurato di storage su disco precollegato chiamato instance store. I dati sui volumi dell'instance store persistono solo durante il ciclo di vita dell'istanza Amazon corrispondente. EC2

Gestione delle risorse del cluster

Il livello di gestione delle risorse è responsabile della gestione delle risorse del cluster e della pianificazione dei processi per l'elaborazione dei dati.

Per impostazione predefinita, Amazon EMR utilizza YARN (Yet Another Resource Negotiator), un componente introdotto in Apache Hadoop 2.0 per gestire centralmente le risorse del cluster per più framework di elaborazione dati. Tuttavia, esistono altri framework e applicazioni offerti in Amazon EMR che non vengono utilizzati YARN come gestore di risorse. Amazon dispone EMR inoltre di un agente su ogni nodo che amministra i YARN componenti, mantiene il cluster integro e comunica con Amazon. EMR

Poiché le istanze Spot vengono spesso utilizzate per eseguire nodi di attività, Amazon EMR dispone di funzionalità predefinite per la pianificazione dei processi in modo che i YARN processi in esecuzione non abbiano esito negativo quando i nodi di attività in esecuzione su istanze Spot vengono terminati. Amazon EMR lo fa consentendo ai processi master delle applicazioni di essere eseguiti solo sui nodi principali. Il processo master dell'applicazione controlla i processi in esecuzione e deve rimanere attivo per tutta la durata del processo.

Amazon EMR versione 5.19.0 e successive utilizza la funzionalità integrata di etichette dei YARN nodi per raggiungere questo obiettivo. (Le versioni precedenti utilizzavano una patch di codice). Le proprietà nelle classificazioni yarn-site e di capacity-scheduler configurazione sono configurate di default in modo che YARN capacity-scheduler e fair-scheduler sfruttino le etichette dei nodi. Amazon etichetta EMR automaticamente i nodi principali con l'COREetichetta e imposta le proprietà in modo che i master dell'applicazione siano pianificati solo sui nodi con l'COREetichetta. La modifica manuale delle proprietà correlate nelle classificazioni di configurazione yarn-site e capacity-scheduler, o direttamente nei XML file associati, potrebbe interrompere questa funzionalità o modificare questa funzionalità.

Framework di elaborazione dati

Il livello di framework di elaborazione dati è il motore utilizzato per elaborare e analizzare i dati. Sono disponibili molti framework che funzionano o dispongono di una propria gestione delle risorse. YARN Sono disponibili diversi framework per diversi tipi di esigenze di elaborazione, come batch, interattivi, in-memory, streaming e così via. Il framework scelto varia a seconda del caso d'uso. Questo ha un impatto sulle lingue e sulle interfacce disponibili dal livello dell'applicazione, che è il livello utilizzato per interagire con i dati che si desidera elaborare. I principali framework di elaborazione disponibili per Amazon EMR sono MapReduce Hadoop e Spark.

Hadoop MapReduce

Hadoop MapReduce è un modello di programmazione open source per il calcolo distribuito. Questo modello semplifica il processo di scrittura di applicazioni distribuite in parallelo gestendo tutta la logica, mentre le funzioni Map e Reduce vengono fornite dall'utente. La funzione Map mappa i dati in gruppi di coppie chiave-valore denominati risultati intermedi. La funzione Reduce combina i risultati intermedi, applica algoritmi aggiuntivi e genera l'output finale. Sono disponibili diversi framework MapReduce, come Hive, che genera automaticamente i programmi Map e Reduce.

Per ulteriori informazioni, consulta How map and reduce operations are actually carried out (Come vengono eseguite le operazioni Map e Reduce) sul sito Web del wiki di Apache Hadoop.

Apache Spark

Spark è un framework di cluster e un modello di programmazione per l'elaborazione di carichi di lavoro di big data. Come Hadoop MapReduce, Spark è un sistema di elaborazione distribuito open source, ma utilizza grafici aciclici diretti per i piani di esecuzione e la memorizzazione nella cache in memoria per i set di dati. Quando esegui Spark su AmazonEMR, puoi utilizzarlo per accedere direttamente EMRFS ai tuoi dati in Amazon S3. Spark supporta più moduli di query interattivi come Spark. SQL

Per ulteriori informazioni, consulta Apache Spark sui EMR cluster Amazon nella Amazon EMR Release Guide.

Applicazioni e programmi

Amazon EMR supporta molte applicazioni come Hive, Pig e la libreria Spark Streaming per fornire funzionalità come l'utilizzo di linguaggi di livello superiore per creare carichi di lavoro di elaborazione, sfruttare algoritmi di apprendimento automatico, creare applicazioni di elaborazione di flussi e creare data warehouse. Inoltre, Amazon supporta EMR anche progetti open source che dispongono di una propria funzionalità di gestione dei cluster anziché YARN utilizzarla.

Utilizzi diverse librerie e linguaggi per interagire con le applicazioni che esegui in AmazonEMR. Ad esempio, puoi usare Java, Hive o Pig con MapReduce o Spark Streaming, Spark MLlib e GraphX con SparkSQL.

Per ulteriori informazioni, consulta la Amazon EMR Release Guide.