Configurazione dei tipi di istanze EMR del cluster Amazon e delle migliori pratiche per le istanze Spot - 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à.

Configurazione dei tipi di istanze EMR del cluster Amazon e delle migliori pratiche per le istanze Spot

Utilizza le indicazioni contenute in questa sezione per aiutarti a determinare i tipi di istanze, le opzioni di acquisto e la quantità di storage da fornire per ogni tipo di nodo in un EMR cluster.

Che tipo di istanza utilizzare?

Esistono diversi modi per aggiungere EC2 istanze Amazon a un cluster. Il metodo da scegliere dipende dal fatto che si utilizzi la configurazione dei gruppi di istanze o la configurazione dei parchi istanze per il cluster.

Un modo per pianificare le istanze del cluster è eseguire un cluster di test con un set di dati di esempio rappresentativo e monitorare l'utilizzo dei nodi del cluster. Per ulteriori informazioni, consulta Visualizza e monitora un EMR cluster Amazon mentre esegue il lavoro. Un altro modo è calcolare la capacità delle istanze che si stanno valutando e confrontare tale valore rispetto alle dimensioni dei dati.

In generale, il tipo di nodo principale, che assegna le attività, non richiede un'EC2istanza con molta potenza di elaborazione; EC2 le istanze Amazon per il tipo di nodo core, che elaborano le attività e archiviano i datiHDFS, richiedono sia potenza di elaborazione che capacità di archiviazione; EC2 le istanze Amazon per il tipo di nodo task, che non archiviano dati, richiedono solo potenza di elaborazione. Per linee guida sulle EC2 istanze Amazon disponibili e sulla loro configurazione, consultaConfigura i tipi di EC2 istanze Amazon da utilizzare con Amazon EMR.

Le seguenti linee guida si applicano alla maggior parte dei EMR cluster Amazon.

  • Esiste un CPU limite v per il numero totale di EC2 istanze Amazon on-demand eseguite su un AWS account per. Regione AWS Per ulteriori informazioni sul CPU limite v e su come richiedere un aumento del limite per il tuo account, consulta On-Demand Instances nella Amazon EC2 User Guide for Linux Instances.

  • Generalmente, il nodo primario non ha requisiti di calcolo elevati. Per i cluster con un numero elevato di nodi o per i cluster con applicazioni distribuite specificamente sul nodo primario (JupyterHub, Hue, ecc.), potrebbe essere necessario un nodo primario più grande che può contribuire a migliorare le prestazioni del cluster. Ad esempio, potresti prendere in considerazione l'utilizzo di un'istanza m5.xlarge per cluster piccoli (50 nodi o meno) e l'aumento a un tipo di istanza più grande per cluster più grandi.

  • Le esigenze di calcolo dei nodi principali e di task dipendono dal tipo di elaborazione eseguita dall'applicazione. Molti job possono essere eseguiti su tipi di istanze generiche, che offrono prestazioni bilanciate in termini di spazio su disco e CPU input/output. I cluster a elaborazione intensiva possono trarre vantaggio dall'esecuzione su CPU istanze High, che in proporzione ne hanno più di. CPU RAM Applicazioni di database e di caching nella memoria possono trarre vantaggio dall'esecuzione su istanze a memoria elevata. Le applicazioni a uso intensivo e CPU intensivo di rete, come l'analisi e l'apprendimento automaticoNLP, possono trarre vantaggio dall'esecuzione su istanze di calcolo cluster, che forniscono risorse proporzionalmente elevate e prestazioni di rete migliorate. CPU

  • Se fasi diverse del cluster hanno diverse esigenze di capacità, puoi iniziare con un numero ridotto di nodi principali e aumentare o diminuire il numero di nodi di task per soddisfare i diversi requisiti di capacità del flusso di elaborazione.

  • La quantità di dati che puoi elaborare dipende dalla capacità dei nodi principali e dalla dimensione dei dati come input, durante l'elaborazione, e come output. I dataset di input, intermedio e di output risiedono tutti sul cluster durante l'elaborazione.

Quando occorre utilizzare le istanze Spot?

Quando avvii un cluster in AmazonEMR, puoi scegliere di avviare istanze primarie, core o task su istanze Spot. Poiché ogni tipo di gruppo di istanze gioca un ruolo diverso nel cluster, esistono implicazioni legate all'avvio di ciascun tipo di nodo sulle istanze Spot. Non è possibile modificare un'opzione di acquisto di un'istanza quando un cluster è in esecuzione. Per passare dalle istanze on demand alle istanze spot o viceversa per i nodi primari e core è necessario terminare il cluster e avviarne uno nuovo. Per i nodi di task, puoi avviare una nuovo gruppo di istanze di task o un parco istanze e rimuovere quella precedente.

EMRImpostazioni Amazon per prevenire errori di lavoro a causa della chiusura dell'istanza Spot del nodo di attività

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à.

Amazon EMR configura le seguenti proprietà e valori per impostazione predefinita. Fai attenzione quando configuri queste proprietà.

Nota

A partire dalla serie di release di Amazon EMR 6.x, la funzionalità delle etichette dei YARN nodi è disabilitata per impostazione predefinita. Per impostazione predefinita, i processi primari dell'applicazione possono essere eseguiti sia sui nodi core sia su quelli attività. Puoi abilitare la funzionalità delle etichette dei YARN nodi configurando le seguenti proprietà:

  • yarn.node-labels.enabled: true

  • yarn.node-labels.am.default-node-label-expression: 'CORE'

  • yarn-site (yarn-site.xml) Su tutti i nodi

    • yarn.node-labels.enabled: true

    • yarn.node-labels.am.default-node-label-expression: 'CORE'

    • yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'

    • yarn.node-labels.configuration-type: 'distributed'

  • yarn-site (yarn-site.xml) su nodi primari e core

    • yarn.nodemanager.node-labels.provider: 'config'

    • yarn.nodemanager.node-labels.provider.configured-node-partition: 'CORE'

  • capacity-scheduler (capacity-scheduler.xml) Su tutti i nodi

    • yarn.scheduler.capacity.root.accessible-node-labels: '*'

    • yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity: 100

    • yarn.scheduler.capacity.root.default.accessible-node-labels: '*'

    • yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: 100

Nodo primario su un'istanza spot

Il nodo primario controlla e gestisce il cluster. Quando termina, termina anche il cluster, pertanto devi avviare il nodo primario come istanza spot solo se stai eseguendo un cluster in cui la terminazione improvvisa è accettabile. Ciò è possibile se stai eseguendo il test di una nuova applicazione, disponi di un cluster che conserva periodicamente i dati in uno store esterno come Amazon S3 o stai eseguendo un cluster in cui il costo è più importante che garantire il completamento del cluster.

Quando avvii il gruppo di istanze primarie come istanza spot, il cluster non si avvia finché tale richiesta di istanza spot non viene soddisfatta. È importare tenere presente ciò quando si seleziona il prezzo Spot massimo.

Puoi aggiungere un nodo primario di istanza spot solo quando avvii il cluster. I nodi primari non possono essere aggiunti o rimossi da un cluster in esecuzione.

In genere, devi eseguire il nodo primario come istanza spot solo se stai eseguendo l'intero cluster (tutti i gruppi di istanze) come istanze spot.

Nodi principali sulle istanze Spot

I nodi principali elaborano i dati e memorizzano le informazioni utilizzandoHDFS. La terminazione di un'istanza principale comporta la perdita dei dati. Per questo motivo, è consigliabile eseguire i nodi principali sulle istanze Spot solo quando la perdita parziale HDFS dei dati è tollerabile.

Quando avvii il gruppo di istanze core come istanze Spot, Amazon EMR attende di poter effettuare il provisioning di tutte le istanze core richieste prima di avviare il gruppo di istanze. In altre parole, se richiedi sei EC2 istanze Amazon e solo cinque sono disponibili al prezzo Spot massimo o inferiore, il gruppo di istanze non verrà avviato. Amazon EMR continua ad attendere che tutte e sei le EC2 istanze Amazon siano disponibili o fino alla chiusura del cluster. È possibile modificare il numero di istanze Spot in un gruppo di istanze principali per aggiungere capacità a un cluster in esecuzione. Per ulteriori informazioni sulle operazioni con i gruppi di istanze e sul funzionamento delle istanze Spot con il parco istanze, consulta Crea un EMR cluster Amazon con flotte di istanze o gruppi di istanze uniformi.

Nodi attività sulle istanze Spot

I nodi di attività elaborano i dati ma non contengono dati persistenti. HDFS Se terminano perché il prezzo Spot ha superato il prezzo Spot massimo, nessun dato viene perso e l'effetto sul cluster è minimo.

Quando avvii uno o più gruppi di istanze di attività come istanze Spot, Amazon effettua il EMR provisioning del maggior numero possibile di nodi di attività, utilizzando il prezzo Spot massimo che hai stabilito. Ciò significa che se richiedi un gruppo di istanze di attività con sei nodi e sono disponibili solo cinque istanze Spot pari o inferiori al prezzo Spot massimo, Amazon EMR avvia il gruppo di istanze con cinque nodi, aggiungendone il sesto in un secondo momento, se possibile.

Avviare gruppi di istanze dell'attività come istanze Spot è un modo strategico per espandere la capacità del cluster riducendo i costi. Se avvii i gruppi di istanze primarie e core come istanze on demand, la loro capacità è garantita per l'esecuzione del cluster. Puoi aggiungere istanze dell'attività ai gruppi di istanze dell'attività in base alle esigenze, per gestire picchi di traffico o velocizzare l'elaborazione dei dati.

Puoi aggiungere o rimuovere nodi di attività utilizzando la console AWS CLI, oppure. API Puoi anche aggiungere altri gruppi di attività, ma non puoi rimuovere un gruppo di attività dopo che è stato creato.

Configurazioni di istanze per scenari applicativi

La tabella seguente è un riferimento rapido per le opzioni di acquisto e le configurazioni dei tipi di nodo in genere appropriate per vari scenari applicativi. Scegli il link per visualizzare ulteriori informazioni su ciascun tipo di scenario.

Scenario applicativo Opzione di acquisto per i nodi primari Opzione di acquisto per i nodi principali Opzione di acquisto per i nodi attività
Cluster di lunga durata e data warehouse On demand Combinazione di on demand o parco istanze Combinazione di Spot o parco istanze
Carichi di lavoro basati sui costi Spot Spot Spot
Carichi di lavoro critici On demand On demand Combinazione di Spot o parco istanze
Test dell'applicazione Spot Spot Spot

Esistono diversi scenari in cui le istanze Spot sono utili per l'esecuzione di un EMR cluster Amazon.

Cluster di lunga durata e data warehouse

Se gestisci un EMR cluster Amazon persistente con una variazione prevedibile della capacità di calcolo, come un data warehouse, puoi gestire i picchi di domanda a costi inferiori con le istanze Spot. Puoi avviare gruppi di istanze primarie e core come istanze on demand per gestire la normale capacità e avviare il gruppo di istanze attività come istanze spot per gestire i requisiti di carico di picco.

Carichi di lavoro basati sui costi

Se stai eseguendo cluster transitori per i quali un costo inferiore è più importante del tempo necessario per il completamento e la perdita parziale del lavoro è accettabile, puoi eseguire l'intero cluster (gruppi di istanze primarie, core e attività) come istanze spot per trarre vantaggio dal maggiore risparmio sui costi.

Carichi di lavoro critici

Se stai eseguendo un cluster per i quale un costo inferiore è più importante del tempo necessario per il completamento, ma la perdita parziale del lavoro non è accettabile, avvia i gruppi di istanze primarie e core come istanze on demand e integra con uno o più gruppi di istanze attività di istanze spot. L'esecuzione dei gruppi di istanze primari e principali come istanze On-Demand garantisce la persistenza dei dati HDFS e la protezione del cluster dalla chiusura dovuta alle fluttuazioni del mercato Spot, garantendo al contempo i risparmi sui costi derivanti dall'esecuzione dei gruppi di istanze di attività come istanze Spot.

Test dell'applicazione

Quando esegui il test di una nuova applicazione come preparazione all'avvio in un ambiente di produzione, puoi eseguire l'intero cluster (gruppi di istanze primarie, core e attività) come istanze spot per ridurre i costi di test.

Calcolo della capacità richiesta di un cluster HDFS

La quantità di HDFS storage disponibile per il cluster dipende dai seguenti fattori:

  • Il numero di EC2 istanze Amazon utilizzate per i nodi principali.

  • La capacità dell'EC2instance store di Amazon per il tipo di istanza utilizzato. Per ulteriori informazioni sui volumi degli instance store, consulta Amazon Amazon EC2 Instance Store nella Amazon EC2 User Guide.

  • Il numero e la dimensione dei EBS volumi Amazon collegati ai nodi principali.

  • Un fattore di replica, che tiene conto del modo in cui ogni blocco di dati viene archiviato HDFS per una ridondanza RAID analoga. Per impostazione predefinita, il fattore di replica è tre per un cluster di almeno 10 nodi principali, due per un cluster di 4-9 nodi principali e uno per un cluster di massimo tre nodi.

Per calcolare la HDFS capacità di un cluster, per ogni nodo principale, aggiungi la capacità del volume dell'instance store alla capacità di EBS storage di Amazon (se utilizzata). Moltiplica il risultato per il numero di nodi principali, quindi dividi il totale per il fattore di replica in base al numero di nodi principali. Ad esempio, un cluster con 10 nodi core di tipo i2.xlarge, che dispongono di 800 GB di storage delle istanze senza EBS volumi Amazon collegati, ha un totale di circa 2.666 GB disponibili per HDFS (10 nodi x 800 GB ÷ 3 fattori di replica).

Se il valore HDFS di capacità calcolato è inferiore ai dati, puoi aumentare la quantità di HDFS storage nei seguenti modi:

  • Creazione di un cluster con EBS volumi Amazon aggiuntivi o aggiunta di gruppi di istanze con EBS volumi Amazon collegati a un cluster esistente

  • Aggiungendo più nodi principali

  • Scelta di un tipo di EC2 istanza Amazon con maggiore capacità di storage

  • Utilizzando la compressione dati

  • Modificando le impostazioni di configurazione Hadoop per ridurre il fattore di replica

La riduzione del fattore di replica deve essere utilizzata con cautela in quanto riduce la ridondanza dei HDFS dati e la capacità del cluster di ripristinare blocchi persi o danneggiati. HDFS