Configurazione del dimensionamento automatico verticale per Amazon EMR su EKS - 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 del dimensionamento automatico verticale per Amazon EMR su EKS

Puoi configurare la scalabilità automatica verticale quando invii lavori Amazon EMR Spark tramite l'API. StartJobRun Imposta i parametri di configurazione relativi al dimensionamento automatico nel pod del driver Spark, come mostrato nell'esempio in Invio di un processo Spark con dimensionamento automatico verticale.

L'operatore di dimensionamento automatico verticale di Amazon EMR su EKS ascolta i pod del driver con dimensionamento automatico, quindi configura l'integrazione con il Vertical Pod Autoscaler (VPA) di Kubernetes con le impostazioni sul pod del driver. Ciò facilita il tracciamento delle risorse e il dimensionamento automatico dei pod dell'executor Spark.

Le seguenti sezioni descrivono i parametri che puoi utilizzare quando configuri il dimensionamento automatico verticale per il cluster Amazon EKS.

Nota

Configura il parametro di attivazione/disattivazione della funzionalità come etichetta e configura i parametri rimanenti come annotazioni nel pod del driver Spark. I parametri del dimensionamento automatico appartengono al dominio emr-containers.amazonaws.com/ e hanno il prefisso dynamic.sizing.

Parametri obbligatori

Devi includere i due parametri seguenti nel driver di processi Spark quando invii il processo:

Chiave Descrizione Valori accettati Valore predefinito Tipo Parametro Spark1

dynamic.sizing

Attivazione/disattivazione della funzionalità

true, false

non impostato

etichetta

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing

dynamic.sizing.signature

Firma del processo

stringa

non impostato

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature

1 Utilizza questo parametro come SparkSubmitParameter o ConfigurationOverride nell'API StartJobRun.

  • dynamic.sizing: puoi attivare e disattivare il dimensionamento automatico verticale con l'etichetta dynamic.sizing. Per attivare il dimensionamento automatico verticale, imposta dynamic.sizing su true nel pod del driver Spark. Se ometti questa etichetta o la imposti su un valore diverso da true, il dimensionamento automatico verticale è disattivato.

  • dynamic.sizing.signature: imposta la firma del processo con l'annotazione dynamic.sizing.signature nel pod del driver. Il dimensionamento automatico verticale aggrega i dati sull'utilizzo delle risorse in diverse esecuzioni di processi Spark di Amazon EMR per ricavare consigli sulle risorse. Sei tu a fornire l'identificatore univoco per associare i processi.

    Nota

    Se il processo si ripete a intervalli fissi, ad esempio giornalieri o settimanali, la firma deve rimanere la stessa per ogni nuova istanza del processo. Ciò garantisce che il dimensionamento automatico verticale possa calcolare e aggregare i consigli su diverse esecuzioni del processo.

1 Utilizza questo parametro come SparkSubmitParameter o ConfigurationOverride nell'API StartJobRun.

Parametri facoltativi

Il dimensionamento automatico verticale supporta anche i seguenti parametri opzionali. Impostali come annotazioni nel pod del driver.

Chiave Descrizione Valori accettati Valore predefinito Tipo Parametro Spark1

dynamic.sizing.mode

Modalità di dimensionamento automatico verticale

Off, Initial, Auto

Off

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.mode

dynamic.sizing.scale.memory

Abilita il dimensionamento della memoria

true, false

true

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory

dynamic.sizing.scale.cpu

Attiva o disattiva il dimensionamento della CPU

true, false

false

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu

dynamic.sizing.scale.memory.min

Limite minimo per il dimensionamento della memoria

stringa, quantità di risorse K8s es.: 1G

non impostato

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min

dynamic.sizing.scale.memory.max

Limite massimo per il dimensionamento della memoria

stringa, quantità di risorse K8s es.: 4G

non impostato

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max

dynamic.sizing.scale.cpu.min

Limite minimo per il dimensionamento della CPU

stringa, quantità di risorse K8s es.: 1

non impostato

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min

dynamic.sizing.scale.cpu.max

Limite massimo per il dimensionamento della CPU

stringa, quantità di risorse K8s es.: 2

non impostato

annotazione

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.max

Modalità di dimensionamento automatico verticale

Il parametro mode è mappato alle diverse modalità di dimensionamento automatico supportate dal VPA. Utilizza l'annotazione dynamic.sizing.mode nel pod del driver per impostare la modalità. Per questo parametro sono supportati i valori seguenti:

  • Disattivato: una modalità di esecuzione di prova in cui è possibile monitorare i consigli, ma il dimensionamento automatico non viene eseguito. È la modalità predefinita per il dimensionamento automatico verticale. In questa modalità, la risorsa dell'autoscaler di pod verticale associata calcola i consigli e puoi monitorarli attraverso strumenti come kubectl, Prometheus e Grafana.

  • Iniziale: in questa modalità, VPA dimensiona in automatico le risorse all'avvio del processo se sono disponibili consigli basati sulle esecuzioni storiche del processo, ad esempio nel caso di un processo ricorrente.

  • Automatico: in questa modalità, VPA espelle i pod dell'executor Spark e li dimensiona in automatico con le impostazioni delle risorse consigliate quando il pod del driver Spark li riavvia. A volte, il VPA espelle i pod dell'executor Spark in esecuzione, quindi potrebbe causare una latenza aggiuntiva quando ritenta l'executor interrotto.

Dimensionamento delle risorse

Quando imposti il dimensionamento automatico verticale, puoi scegliere se dimensionare le risorse di CPU e memoria. Imposta le annotazioni dynamic.sizing.scale.cpu e dynamic.sizing.scale.memory su true o false. Per impostazione predefinita, il dimensionamento della CPU è impostato su false e il dimensionamento della memoria è impostato su true.

Valori minimi e massimi delle risorse (limiti)

In alternativa, puoi anche impostare limiti per le risorse della CPU e della memoria. Scegli un valore minimo e massimo per queste risorse con le annotazioni dynamic.sizing.[memory/cpu].[min/max] quando abiliti il dimensionamento automatico. Per impostazione predefinita, le risorse non hanno limitazioni. Imposta le annotazioni come valori di stringa che rappresentano una quantità di risorse Kubernetes. Ad esempio, imposta dynamic.sizing.memory.max su 4G per rappresentare 4 GB.