

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.

# Uso de la clasificación de remitentes de trabajos
<a name="emr-eks-job-submitter"></a>

## Descripción general de
<a name="emr-eks-job-submitter-overview"></a>

La solicitud de `StartJobRun` de Amazon EMR en EKS crea un pod de *remitente de trabajos* (también conocido como *job-runner*) para generar el controlador de Spark. Puede utilizar la `emr-job-submitter` clasificación para configurar los selectores de nodos, añadir tolerancias, personalizar el registro y realizar otras modificaciones en el módulo de envío de tareas.

Las siguientes configuraciones están disponibles en la clasificación `emr-job-submitter`:

** `jobsubmitter.node.selector.[{{selectorKey}}]` **  
Se agrega al selector de nodos del módulo de envío de trabajos, con la clave {{selectorKey}} y el valor como valor de configuración. Por ejemplo, puede configurar un ` jobsubmitter.node.selector.identifier` selector de nodos con una clave `myIdentifier` `identifier` y un valor y el módulo de envío de trabajos tendrá un selector de nodos. `myIdentifier` Esto se puede usar para especificar en qué nodos se puede colocar el pod de remitente de trabajos. Para agregar varias claves de selección de nodos, defina varias configuraciones con este prefijo.

** `jobsubmitter.label.[{{labelKey}}]` **  
Se suma a las etiquetas del módulo de envío de trabajos, con la clave {{labelKey}} y el valor como valor de configuración. Para añadir varias etiquetas, defina varias configuraciones con este prefijo.

** `jobsubmitter.annotation.[{{annotationKey}}]` **  
Se suma a las anotaciones del módulo de envío del trabajo, con la clave {{annotationKey}} y el valor como valor de configuración. Para añadir varias anotaciones, defina varias configuraciones con este prefijo.

** `jobsubmitter.node.toleration.[{{tolerationKey}}]` **  
Añade [tolerancias al módulo](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) de envío de trabajos. De forma predeterminada, no se agrega ninguna tolerancia al módulo. La clave de la tolerancia será {{tolerationKey}} y el valor de la tolerancia será el valor de configuración. Si el valor de configuración se establece en una cadena que no esté vacía, el operador lo será. `Equals` Si el valor de configuración está establecido en`""`, entonces el operador lo será`Exists`.

** `jobsubmitter.node.toleration.[{{tolerationKey}}].[{{effect}}]` **  
Añade un efecto de tolerancia al prefijo{{tolerationKey}}. Este campo es obligatorio al añadir tolerancias. Los valores permitidos para el campo de efecto son ` NoExecute``NoSchedule`, y`PreferNoSchedule`.

** `jobsubmitter.node.toleration.[{{tolerationKey}}].[{{tolerationSeconds}}]` **  
Agrega TolerationSeconds al prefijo. {{tolerationKey}} Campo opcional. Solo se aplica cuando el efecto es. `NoExecute`

** `jobsubmitter.scheduler.name` **  
Establece un nombre de programador personalizado para el módulo de envío de trabajos.

** `jobsubmitter.logging` **  
Activa o deshabilita el registro en el módulo de envío de trabajos. Cuando está configurado, ` DISABLED` el contenedor de registro se elimina del módulo de envío de trabajos, lo que deshabilita cualquier registro para este módulo especificado en el módulo`monitoringConfiguration`, como o. `s3MonitoringConfiguration` `cloudWatchMonitoringConfiguration` Si esta configuración no está establecida o se establece en cualquier otro valor, se habilita el inicio de sesión en el módulo de envío de trabajos.

** `jobsubmitter.logging.image` **  
Establece una imagen personalizada que se utilizará en el contenedor de registro del pod de remitente de trabajos.

** `jobsubmitter.logging.request.cores` **  
Establece un valor personalizado para el número CPUs, en unidades de CPU, del contenedor de registro del módulo de envío de trabajos. De forma predeterminada, se establece en **100 m**.

** `jobsubmitter.logging.request.memory` **  
Establece un valor personalizado para la cantidad de memoria, en bytes, del contenedor de registro del pod de remitente de trabajos. De forma predeterminada, se establece en **200 Mi**. Un mebibyte es una unidad de medida similar a un megabyte.

** `jobsubmitter.container.image` **  
Establece una imagen personalizada para el contenedor del módulo de envío de `job-runner` trabajos.

** `jobsubmitter.container.image.pullPolicy` **  
Establece [imagePullPolicy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)los contenedores del módulo de envío de trabajos.

Recomendamos colocar los pods de remitente de trabajos en las instancias bajo demanda. Colocar los pods de remitente de trabajos en las instancias de spot podría provocar un error en el trabajo si la instancia en la que se ejecuta el pod de remitente de trabajos está sujeta a una interrupción de la instancia de spot. También puede [colocar el módulo de envío de trabajos en una única zona de disponibilidad o utilizar cualquier etiqueta de Kubernetes que esté](#emr-eks-job-submitter-ex-ec2) aplicada a los nodos.

## Ejemplos de clasificación de remitentes de trabajos
<a name="emr-eks-job-submitter-examples"></a>

**Topics**
+ [Solicitud de `StartJobRun` con ubicación de nodos bajo demanda para el pod de remitente de trabajos](#emr-eks-job-submitter-ex-od)
+ [`StartJobRun`solicitud con ubicación de nodo Single-AZ y ubicación de tipo instancia Amazon EC2 para el pod de remitente del trabajo](#emr-eks-job-submitter-ex-ec2)
+ [`StartJobRun`solicitud con etiquetas, anotaciones y un programador personalizado para el pod del remitente del trabajo](#emr-eks-job-submitter-label-annotation-scheduler)
+ [`StartJobRun`solicitud con una tolerancia aplicada al módulo de presentación del trabajo con la clave`dedicated`, el valor`graviton_machines`, el efecto y una de `NoExecute` 60 segundos `tolerationSeconds`](#emr-eks-job-submitter-tolerations)
+ [`StartJobRun`solicitud con el registro deshabilitado para el módulo de envío de trabajos](#emr-eks-job-submitter-logging-disabled)
+ [`StartJobRun`solicitud con imagen, CPU y memoria de contenedor de registro personalizados para el módulo de envío de trabajos](#emr-eks-job-submitter-custom)
+ [`StartJobRun`solicitud con un contenedor de envío de trabajos personalizado, imagen y política de extracción](#emr-eks-job-submitter-custom-container)

### Solicitud de `StartJobRun` con ubicación de nodos bajo demanda para el pod de remitente de trabajos
<a name="emr-eks-job-submitter-ex-od"></a>

```
cat >spark-python-in-s3-nodeselector-job-submitter.json << EOF
{
  "name": "spark-python-in-s3-nodeselector", 
  "virtualClusterId": "{{virtual-cluster-id}}", 
  "executionRoleArn": "{{execution-role-arn}}", 
  "releaseLabel": "{{emr-6.11.0-latest}}", 
  "jobDriver": {
    "sparkSubmitJobDriver": {
      "entryPoint": "s3://{{S3-prefix}}/trip-count.py", 
      "sparkSubmitParameters": "--conf spark.driver.cores=5  --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6"
    }
  }, 
  "configurationOverrides": {
    "applicationConfiguration": [
      {
        "classification": "spark-defaults", 
        "properties": {
          "spark.dynamicAllocation.enabled":"false"
        }
      },
      {
        "classification": "emr-job-submitter",
        "properties": {
          "jobsubmitter.node.selector.eks.amazonaws.com/capacityType": "ON_DEMAND"
        }
      }
    ], 
    "monitoringConfiguration": {
      "cloudWatchMonitoringConfiguration": {
        "logGroupName": "/emr-containers/jobs", 
        "logStreamNamePrefix": "demo"
      }, 
      "s3MonitoringConfiguration": {
        "logUri": "s3://joblogs"
      }
    }
  }
}
EOF
aws emr-containers start-job-run --cli-input-json file:///spark-python-in-s3-nodeselector-job-submitter.json
```

### `StartJobRun`solicitud con ubicación de nodo Single-AZ y ubicación de tipo instancia Amazon EC2 para el pod de remitente del trabajo
<a name="emr-eks-job-submitter-ex-ec2"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.node.selector.topology.kubernetes.io/zone": "{{Availability Zone}}",
        "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"{{m5.4xlarge}}"
      }
    }
  ]
}
```

### `StartJobRun`solicitud con etiquetas, anotaciones y un programador personalizado para el pod del remitente del trabajo
<a name="emr-eks-job-submitter-label-annotation-scheduler"></a>

```
"configurationOverrides": { 
  "applicationConfiguration": [ 
    {
      "classification": "emr-job-submitter", 
      "properties": {
        "jobsubmitter.label.label1": "value1",
        "jobsubmitter.label.label2": "value2",
        "jobsubmitter.annotation.ann1": "value1",
        "jobsubmitter.annotation.ann2": "value2",
        "jobsubmitter.scheduler.name": "custom-scheduler"
      }
    }
  ]
}
```

### `StartJobRun`solicitud con una tolerancia aplicada al módulo de presentación del trabajo con la clave`dedicated`, el valor`graviton_machines`, el efecto y una de `NoExecute` 60 segundos `tolerationSeconds`
<a name="emr-eks-job-submitter-tolerations"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.node.toleration.dedicated":"graviton_machines",
        "jobsubmitter.node.toleration.dedicated.effect":"NoExecute",
        "jobsubmitter.node.toleration.dedicated.tolerationSeconds":"60"
      }
    }
  ]
}
```

### `StartJobRun`solicitud con el registro deshabilitado para el módulo de envío de trabajos
<a name="emr-eks-job-submitter-logging-disabled"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.logging": "DISABLED"
      }
    }
  ], 
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "/emr-containers/jobs", 
      "logStreamNamePrefix": "demo"
    }, 
    "s3MonitoringConfiguration": {
      "logUri": "s3://joblogs"
    }
  }
}
```

### `StartJobRun`solicitud con imagen, CPU y memoria de contenedor de registro personalizados para el módulo de envío de trabajos
<a name="emr-eks-job-submitter-custom"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.logging.image": "{{YOUR_ECR_IMAGE_URL}}",
        "jobsubmitter.logging.request.memory": "200Mi",
        "jobsubmitter.logging.request.cores": "0.5"
      }
    }
  ], 
  "monitoringConfiguration": {
    "cloudWatchMonitoringConfiguration": {
      "logGroupName": "/emr-containers/jobs", 
      "logStreamNamePrefix": "demo"
    }, 
    "s3MonitoringConfiguration": {
      "logUri": "s3://joblogs"
    }
  }
}
```

### `StartJobRun`solicitud con un contenedor de envío de trabajos personalizado, imagen y política de extracción
<a name="emr-eks-job-submitter-custom-container"></a>

```
"configurationOverrides": {
  "applicationConfiguration": [
    {
      "classification": "emr-job-submitter",
      "properties": {
        "jobsubmitter.container.image": "{{123456789012.dkr.ecr.us-west-2.amazonaws.com/emr6.11_custom_repo}}",
        "jobsubmitter.container.image.pullPolicy": "{{kubernetes pull policy}}"
      }
    }
  ]
}
```