

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración del escalado automático vertical de Amazon EMR en EKS
<a name="jobruns-vas-configure"></a>

Puede configurar el escalado automático vertical al enviar trabajos de Amazon EMR Spark a través [StartJobRun](https://docs.aws.amazon.com/emr-on-eks/latest/APIReference/API_StartJobRun.html)de la API. Establezca los parámetros de configuración relacionados con el escalado automático en el pod controlador de Spark, tal como se muestra en el ejemplo de [Envío de un trabajo de Spark con escalado automático vertical](jobruns-vas-gs.md#jobruns-vas-spark-submit).

El operador de escalado automático vertical de Amazon EMR en EKS escucha los pods controladores que tienen escalado automático y, a continuación, configura la integración con el escalador automático vertical de pods (VPA) de Kubernetes con la configuración del pod controlador. Esto facilita el seguimiento de los recursos y el escalado automático de los pods ejecutores de Spark.

En las siguientes secciones, se describen los parámetros que puede usar al configurar el escalado automático vertical para su clúster de Amazon EKS.

**nota**  
Configure el parámetro de alternancia de características como una etiqueta y configure los parámetros restantes como anotaciones en el pod controlador de Spark. Los parámetros de escalado automático pertenecen al dominio `emr-containers.amazonaws.com/` y tienen el prefijo `dynamic.sizing`.

## Parámetros necesarios
<a name="jobruns-vas-parameters-req"></a>

Cuando envíe su trabajo, debe incluir los dos parámetros siguientes en el controlador de tareas de Spark:


| Key | Description (Descripción) | Valores aceptados | Predeterminado | Tipo | Parámetro de Spark1 | 
| --- | --- | --- | --- | --- | --- | 
|  `dynamic.sizing`  |  Conmutador de características  |  `true`, `false`  |  no configurado  |  etiqueta  |  `spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing`  | 
|  `dynamic.sizing.signature`  |  Firma de trabajo  |  *string*  |  no configurado  |  anotación  |  `spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature`  | 

1 Utilice este parámetro como `SparkSubmitParameter` o `ConfigurationOverride` en la API de `StartJobRun`.
+ **`dynamic.sizing`**: puede activar y desactivar el escalado automático vertical con la etiqueta `dynamic.sizing`. Para activar el escalado automático vertical, establezca `dynamic.sizing` en `true` en el pod controlador de Spark. Si omite esta etiqueta o la establece en cualquier otro valor que no sea `true`, el escalado automático vertical está desactivado.
+ **`dynamic.sizing.signature`**: defina la firma del trabajo con la anotación `dynamic.sizing.signature` en el pod controlador. El escalado automático vertical agrega los datos de uso de recursos en diferentes ejecuciones de trabajos de Amazon EMR Spark para obtener recomendaciones de recursos. Usted proporciona el identificador único para vincular los trabajos.

  
**nota**  
Si el trabajo se repite en un intervalo fijo, como una vez al día o una vez por semana, la firma del trabajo debe permanecer igual para cada nueva instancia del trabajo. Esto garantiza que el escalado automático vertical pueda calcular y agregar las recomendaciones en diferentes ejecuciones del trabajo.

1 Utilice este parámetro como `SparkSubmitParameter` o `ConfigurationOverride` en la API de `StartJobRun`.

## Parámetros opcionales
<a name="jobruns-vas-parameters-opt"></a>

El escalado automático vertical también admite los siguientes parámetros opcionales. Configúrelos como anotaciones en el pod controlador.


| Key | Description (Descripción) | Valores aceptados | Predeterminado | Tipo | Parámetro de Spark1 | 
| --- | --- | --- | --- | --- | --- | 
|  `dynamic.sizing.mode`  |  Modo de escalado automático vertical  |  `Off`, `Initial`, `Auto`  |  `Off`  |  anotación  |  `spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.mode`  | 
|  `dynamic.sizing.scale.memory`  |  Permite escalar la memoria  |  *`true`, `false`*  |  `true`  |  anotación  |  `spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory`  | 
|  `dynamic.sizing.scale.cpu`  |  Activar o desactivar escalado de CPU  |  *`true`, `false`*  |  `false`  |  anotación  |  `spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu`  | 
|  `dynamic.sizing.scale.memory.min`  |  Límite mínimo de escalado de memoria  | cadena, [cantidad de recursos de K8](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity), por ejemplo: 1G |  no configurado  |  anotación  | spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min | 
|  `dynamic.sizing.scale.memory.max`  |  Límite máximo de escalado de memoria  | cadena, [cantidad de recursos de K8](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity), por ejemplo: 4G |  no configurado  |  anotación  | spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max | 
|  `dynamic.sizing.scale.cpu.min`  |  Límite mínimo de escalado de CPU  | cadena, [cantidad de recursos de K8](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity), por ejemplo: 1 |  no configurado  |  anotación  | spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min | 
|  `dynamic.sizing.scale.cpu.max`  |  Límite máximo de escalado de CPU  | cadena, [cantidad de recursos de K8](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity), por ejemplo: 2 |  no configurado  |  anotación  | spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.max | 

### Modos de escalado automático vertical
<a name="jobruns-vas-parameters-opt-mode"></a>

El parámetro `mode` se asigna a los diferentes modos de escalado automático que el VPA admite. Utilice la anotación `dynamic.sizing.mode` del pod controlador para configurar el modo. Se admiten los siguientes valores para este parámetro:
+ **Desactivado**: un modo de ejecución en seco en el que puede supervisar las recomendaciones, pero no se lleva a cabo el escalado automático. Este es el modo predeterminado para el escalado automático vertical. En este modo, el recurso del escalador automático vertical de pods asociado calcula las recomendaciones y usted puede supervisarlas mediante herramientas como kubectl, Prometheus y Grafana.
+ **Inicial**: en este modo, el VPA escala automáticamente los recursos cuando se inicia el trabajo si hay recomendaciones disponibles en función del historial de ejecución del trabajo, como en el caso de un trabajo periódico.
+ **Automático**: en este modo, el VPA expulsa los pods ejecutores de Spark y los escala automáticamente con la configuración de recursos recomendada cuando el pod controlador de Spark los reinicia. A veces, el VPA expulsa los pods ejecutores de Spark en ejecución, por lo que podría producirse una latencia adicional al volver a intentar el ejecutor interrumpido.

### Escalado de recursos
<a name="jobruns-vas-parameters-opt-rs"></a>

Al configurar el escalado automático vertical, puede elegir si desea escalar los recursos de CPU y memoria. Establezca las anotaciones `dynamic.sizing.scale.cpu` y `dynamic.sizing.scale.memory` en `true` o `false`. De forma predeterminada, el escalado de CPU está establecido en `false` y el escalado de memoria está establecido en `true`.

### Mínimos y máximos de recursos (límites)
<a name="jobruns-vas-parameters-opt-bounds"></a>

De forma opcional, también puede establecer límites en los recursos de CPU y memoria. Elija un valor mínimo y máximo para estos recursos con las anotaciones `dynamic.sizing.[memory/cpu].[min/max]` cuando habilite el escalado automático. De forma predeterminada, los recursos no tienen limitaciones. Configure las anotaciones como valores de cadena que representen la cantidad de recursos de Kubernetes. Por ejemplo, configure `dynamic.sizing.memory.max` en `4G` para representar 4 GB.