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

Capacità preinizializzata

EMRServerless offre una funzionalità opzionale che mantiene conducente e addetti preinizializzati e pronti a rispondere in pochi secondi. In questo modo si crea in modo efficace un pool di lavoratori accogliente per un'applicazione. Questa funzionalità è denominata capacità preinizializzata. Per configurare questa funzionalità, è possibile impostare il initialCapacity parametro di un'applicazione sul numero di lavoratori che si desidera preinizializzare. Con la capacità dei lavoratori preinizializzata, i lavori iniziano immediatamente. Questa soluzione è ideale quando si desidera implementare applicazioni iterative e lavori urgenti.

Quando si invia un lavoro, se initialCapacity sono disponibili lavoratori di, il lavoro utilizza tali risorse per avviarne l'esecuzione. Se tali lavoratori sono già utilizzati da altri lavori o se il lavoro richiede più risorse di quelle disponibiliinitialCapacity, l'applicazione richiede e ottiene lavoratori aggiuntivi, fino ai limiti massimi di risorse impostati per l'applicazione. Al termine dell'esecuzione, un processo rilascia i worker utilizzati e il numero di risorse disponibili per l'applicazione torna a essere lo stessoinitialCapacity. Un'applicazione mantiene le initialCapacity risorse anche dopo che i job hanno terminato l'esecuzione. L'applicazione rilascia risorse in eccesso oltre il periodo in initialCapacity cui i job non ne hanno più bisogno per l'esecuzione.

La capacità preinizializzata è disponibile e pronta all'uso all'avvio dell'applicazione. La capacità preinizializzata diventa inattiva quando l'applicazione viene arrestata. Un'applicazione passa allo STARTED stato solo se la capacità preinizializzata richiesta è stata creata ed è pronta per l'uso. Per tutto il tempo in cui l'applicazione è nello STARTED stato, EMR Serverless mantiene la capacità preinizializzata disponibile per l'uso o l'uso da parte di job o carichi di lavoro interattivi. La funzionalità ripristina la capacità dei contenitori rilasciati o guasti. Ciò mantiene il numero di lavoratori specificato dal InitialCapacity parametro. Lo stato di un'applicazione senza capacità preinizializzata può cambiare immediatamente da a. CREATED STARTED

È possibile configurare l'applicazione in modo che rilasci la capacità preinizializzata se non viene utilizzata per un determinato periodo di tempo, con un valore predefinito di 15 minuti. Una candidatura interrotta si avvia automaticamente quando invii un nuovo lavoro. È possibile impostare queste configurazioni di avvio e arresto automatiche quando si crea l'applicazione oppure modificarle quando l'applicazione si trova in uno STOPPED stato CREATED or.

È possibile modificare i InitialCapacity conteggi e specificare configurazioni di calcoloCPU, ad esempio memoria e disco, per ogni lavoratore. Poiché non è possibile apportare modifiche parziali, è necessario specificare tutte le configurazioni di calcolo quando si modificano i valori. È possibile modificare le configurazioni solo quando l'applicazione è nello stato o. CREATED STOPPED

Nota

Per ottimizzare l'uso delle risorse da parte dell'applicazione, consigliamo di allineare le dimensioni dei container alle dimensioni dei dipendenti con capacità preinizializzata. Ad esempio, se configuri la dimensione dell'esecutore Spark su 2 CPUs e la memoria su 8 GB, ma la capacità preinizializzata del worker è 4 CPUs con 16 GB di memoria, gli esecutori Spark utilizzano solo la metà delle risorse dei lavoratori quando vengono assegnati a questo lavoro.

Personalizzazione della capacità preinizializzata per Spark e Hive

Puoi personalizzare ulteriormente la capacità preinizializzata per i carichi di lavoro eseguiti su specifici framework di big data. Ad esempio, quando un carico di lavoro viene eseguito su Apache Spark, puoi specificare quanti lavoratori iniziano come driver e quanti come esecutori. Allo stesso modo, quando si utilizza Apache Hive, è possibile specificare quanti lavoratori si avviano come driver Hive e quanti devono eseguire le attività Tez.

Configurazione di un'applicazione che esegue Apache Hive con capacità preinizializzata

La seguente API richiesta crea un'applicazione che esegue Apache Hive basata sulla EMR versione Amazon emr-6.6.0. L'applicazione inizia con 5 driver Hive preinizializzati, ciascuno con 2 v CPU e 4 GB di memoria, e 50 task worker Tez preinizializzati, ciascuno con 4 v e 8 GB di memoria. CPU Quando le query Hive vengono eseguite su questa applicazione, utilizzano innanzitutto i worker preinizializzati e iniziano l'esecuzione immediatamente. Se tutti i worker preinizializzati sono occupati e vengono inviati più lavori Hive, l'applicazione può scalare fino a un totale di 400 v e 1024 GB di memoria. CPU Facoltativamente, è possibile omettere la capacità per il lavoratore o per il lavoratore. DRIVER TEZ_TASK

aws emr-serverless create-application \ --type "HIVE" \ --name my-application-name \ --release-label emr-6.6.0 \ --initial-capacity '{ "DRIVER": { "workerCount": 5, "workerConfiguration": { "cpu": "2vCPU", "memory": "4GB" } }, "TEZ_TASK": { "workerCount": 50, "workerConfiguration": { "cpu": "4vCPU", "memory": "8GB" } } }' \ --maximum-capacity '{ "cpu": "400vCPU", "memory": "1024GB" }'

Configurazione di un'applicazione che esegue Apache Spark con capacità preinizializzata

La seguente API richiesta crea un'applicazione che esegue Apache Spark 3.2.0 basata sulla versione 6.6.0 di AmazonEMR. L'applicazione inizia con 5 driver Spark preinizializzati, ciascuno con 2 v CPU e 4 GB di memoria, e 50 executor preinizializzati, ciascuno con 4 v e 8 GB di memoria. CPU Quando i job Spark vengono eseguiti su questa applicazione, utilizzano innanzitutto i worker preinizializzati e iniziano a essere eseguiti immediatamente. Se tutti i worker preinizializzati sono occupati e vengono inviati più job Spark, l'applicazione può scalare fino a un totale di 400 v CPU e 1024 GB di memoria. Facoltativamente, puoi omettere la capacità per il o il. DRIVER EXECUTOR

Nota

Spark aggiunge un sovraccarico di memoria configurabile, con un valore predefinito del 10%, alla memoria richiesta per driver ed esecutori. Affinché i job utilizzino worker preinizializzati, la configurazione della memoria con capacità iniziale deve essere maggiore della memoria richiesta dal job e dall'overhead.

aws emr-serverless create-application \ --type "SPARK" \ --name my-application-name \ --release-label emr-6.6.0 \ --initial-capacity '{ "DRIVER": { "workerCount": 5, "workerConfiguration": { "cpu": "2vCPU", "memory": "4GB" } }, "EXECUTOR": { "workerCount": 50, "workerConfiguration": { "cpu": "4vCPU", "memory": "8GB" } } }' \ --maximum-capacity '{ "cpu": "400vCPU", "memory": "1024GB" }'