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 |
---|---|---|---|---|---|
|
Attivazione/disattivazione della funzionalità |
|
non impostato |
etichetta |
|
|
Firma del processo |
stringa |
non impostato |
annotazione |
|
1 Utilizza questo parametro come SparkSubmitParameter
o ConfigurationOverride
nell'API StartJobRun
.
-
dynamic.sizing
: puoi attivare e disattivare il dimensionamento automatico verticale con l'etichettadynamic.sizing
. Per attivare il dimensionamento automatico verticale, impostadynamic.sizing
sutrue
nel pod del driver Spark. Se ometti questa etichetta o la imposti su un valore diverso datrue
, il dimensionamento automatico verticale è disattivato. -
dynamic.sizing.signature
: imposta la firma del processo con l'annotazionedynamic.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 |
---|---|---|---|---|---|
Modalità di dimensionamento automatico verticale |
|
|
annotazione |
|
|
Abilita il dimensionamento della memoria |
|
|
annotazione |
|
|
Attiva o disattiva il dimensionamento della CPU |
|
|
annotazione |
|
|
Limite minimo per il dimensionamento della memoria |
stringa, quantità di risorse K8s1G |
non impostato |
annotazione |
spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min |
|
Limite massimo per il dimensionamento della memoria |
stringa, quantità di risorse K8s4G |
non impostato |
annotazione |
spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max |
|
Limite minimo per il dimensionamento della CPU |
stringa, quantità di risorse K8s1 |
non impostato |
annotazione |
spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min |
|
Limite massimo per il dimensionamento della CPU |
stringa, quantità di risorse K8s2 |
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.