

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de la classification des soumissionnaires de tâches
<a name="emr-eks-job-submitter"></a>

## Présentation de
<a name="emr-eks-job-submitter-overview"></a>

La demande `StartJobRun` d'Amazon EMR on EKS crée un pod *soumissionnaire de tâche* (également connu sous le nom de pod *exécuteur de tâche*) pour lancer le pilote Spark. Vous pouvez utiliser la `emr-job-submitter` classification pour configurer les sélecteurs de nœuds, ajouter des tolérances, personnaliser la journalisation et apporter d'autres modifications au module d'envoi des tâches.

Les paramètres suivants sont disponibles dans la `emr-job-submitter` classification :

** `jobsubmitter.node.selector.[selectorKey]` **  
S'ajoute au sélecteur de nœuds du module d'envoi de tâches, avec la clé *selectorKey* et la valeur comme valeur de configuration. Par exemple, vous pouvez ` jobsubmitter.node.selector.identifier` définir sur `myIdentifier` et le module de soumission des tâches comportera un sélecteur de nœuds avec une clé `identifier` et une valeur. `myIdentifier` Cela peut être utilisé pour spécifier sur quels nœuds le pod de soumission de tâches peut être placé. Pour ajouter plusieurs clés de sélection de nœuds, définissez plusieurs configurations avec ce préfixe.

** `jobsubmitter.label.[labelKey]` **  
S'ajoute aux étiquettes du module d'envoi de tâches, avec la clé *labelKey* et la valeur comme valeur de configuration. Pour ajouter plusieurs étiquettes, définissez plusieurs configurations avec ce préfixe.

** `jobsubmitter.annotation.[annotationKey]` **  
S'ajoute aux annotations du module d'envoi des tâches, avec la clé *annotationKey* et la valeur comme valeur de configuration. Pour ajouter plusieurs annotations, définissez plusieurs configurations avec ce préfixe.

** `jobsubmitter.node.toleration.[tolerationKey]` **  
Ajoute [des tolérances](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) au module d'envoi des tâches. Par défaut, aucune tolérance n'est ajoutée au module. La clé de la tolérance sera *tolerationKey* et la valeur de la tolérance sera la valeur de configuration. Si la valeur de configuration est définie sur une chaîne non vide, l'opérateur le sera`Equals`. Si la valeur de configuration est définie sur`""`, l'opérateur le sera`Exists`.

** `jobsubmitter.node.toleration.[tolerationKey].[effect]` **  
Ajoute un effet de tolérance au préfixe*tolerationKey*. Ce champ est obligatoire lors de l'ajout de tolérances. Les valeurs autorisées pour le champ d'effet sont ` NoExecute``NoSchedule`, et`PreferNoSchedule`.

** `jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds]` **  
Ajoute TolerationSeconds au préfixe. *tolerationKey* Champ facultatif. Applicable uniquement lorsque l'effet est présent`NoExecute`.

** `jobsubmitter.scheduler.name` **  
Définit un SchedulerName personnalisé pour le module d'envoi des tâches.

** `jobsubmitter.logging` **  
Active ou désactive la journalisation sur le module d'envoi des tâches. Lorsque ce paramètre est défini sur, ` DISABLED` le conteneur de journalisation est supprimé du module d'envoi des tâches, ce qui désactive toute journalisation pour ce module spécifiée dans le`monitoringConfiguration`, tel que `s3MonitoringConfiguration` ou. `cloudWatchMonitoringConfiguration` Lorsque ce paramètre n'est pas défini ou qu'il est défini sur une autre valeur, la connexion au module d'envoi des tâches est activée.

** `jobsubmitter.logging.image` **  
Définit une image personnalisée à utiliser pour le conteneur de journalisation dans le module d'envoi des tâches.

** `jobsubmitter.logging.request.cores` **  
Définit une valeur personnalisée pour le nombre CPUs, en unités de processeur, du conteneur de journalisation sur le module d'envoi des tâches. Par défaut, ce paramètre est réglé sur **100 m.**

** `jobsubmitter.logging.request.memory` **  
Définit une valeur personnalisée pour la quantité de mémoire, en octets, pour le conteneur de journalisation sur le module d'envoi des tâches. Par défaut, ce paramètre est réglé sur **200 Mi**. Un mébioctet est une unité de mesure similaire à un mégaoctet.

** `jobsubmitter.container.image` **  
Définit une image personnalisée pour le conteneur du module d'envoi de `job-runner` tâches.

** `jobsubmitter.container.image.pullPolicy` **  
Définit [imagePullPolicy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)les conteneurs du module de soumission des tâches.

Nous vous recommandons de placer les modules d'envoi de tâches sur des instances à la demande. Le fait de placer des modules d'envoi de tâches sur des instances Spot peut entraîner l'échec d'une tâche si l'instance sur laquelle s'exécute le module d'envoi de tâches est sujette à une interruption d'instance Spot. Vous pouvez également [placer le module d'envoi des tâches dans une seule zone de disponibilité ou utiliser les étiquettes Kubernetes appliquées aux nœuds](#emr-eks-job-submitter-ex-ec2).

## Exemples de classification des soumissionnaires de tâches
<a name="emr-eks-job-submitter-examples"></a>

**Topics**
+ [Demande `StartJobRun` avec placement de nœuds à la demande pour le pod soumissionnaire de tâches](#emr-eks-job-submitter-ex-od)
+ [`StartJobRun`demande avec placement d'un nœud mono-AZ et placement du type d'instance Amazon EC2 pour le module d'envoi des tâches](#emr-eks-job-submitter-ex-ec2)
+ [`StartJobRun`demande avec des étiquettes, des annotations et un planificateur personnalisé pour le module d'envoi des tâches](#emr-eks-job-submitter-label-annotation-scheduler)
+ [`StartJobRun`demande avec une tolérance appliquée au module d'envoi de la tâche avec clé`dedicated`, valeur `graviton_machines``NoExecute`, effet et un `tolerationSeconds` délai de 60 secondes](#emr-eks-job-submitter-tolerations)
+ [`StartJobRun`demande avec journalisation désactivée pour le module d'envoi de tâches](#emr-eks-job-submitter-logging-disabled)
+ [`StartJobRun`demande avec image du conteneur de journalisation personnalisé, processeur et mémoire pour le module d'envoi des tâches](#emr-eks-job-submitter-custom)
+ [`StartJobRun`demande avec une image de conteneur d'envoi de tâches personnalisée et une politique d'extraction](#emr-eks-job-submitter-custom-container)

### Demande `StartJobRun` avec placement de nœuds à la demande pour le pod soumissionnaire de tâches
<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`demande avec placement d'un nœud mono-AZ et placement du type d'instance Amazon EC2 pour le module d'envoi des tâches
<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`demande avec des étiquettes, des annotations et un planificateur personnalisé pour le module d'envoi des tâches
<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`demande avec une tolérance appliquée au module d'envoi de la tâche avec clé`dedicated`, valeur `graviton_machines``NoExecute`, effet et un `tolerationSeconds` délai de 60 secondes
<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`demande avec journalisation désactivée pour le module d'envoi de tâches
<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`demande avec image du conteneur de journalisation personnalisé, processeur et mémoire pour le module d'envoi des tâches
<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`demande avec une image de conteneur d'envoi de tâches personnalisée et une politique d'extraction
<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"
      }
    }
  ]
}
```