

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
<a name="jobruns-vas-configure"></a>

Puoi configurare la scalabilità automatica verticale quando invii lavori Amazon EMR Spark tramite l'API. [StartJobRun](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_StartJobRun.html) 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](jobruns-vas-gs.md#jobruns-vas-spark-submit).

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
<a name="jobruns-vas-parameters-req"></a>

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


| Chiave | Description | 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
<a name="jobruns-vas-parameters-opt"></a>

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


| Chiave | Description | 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](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity) 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](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity) 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](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity) 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](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity) es.: 2 |  non impostato  |  annotazione  | spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.max | 

### Modalità di dimensionamento automatico verticale
<a name="jobruns-vas-parameters-opt-mode"></a>

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
<a name="jobruns-vas-parameters-opt-rs"></a>

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)
<a name="jobruns-vas-parameters-opt-bounds"></a>

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.