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
Présentation de
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é
selectorKeyet la valeur comme valeur de configuration. Par exemple, vous pouvezjobsubmitter.node.selector.identifierdéfinir surmyIdentifieret le module de soumission des tâches comportera un sélecteur de nœuds avec une cléidentifieret une valeur.myIdentifierCela 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é
labelKeyet 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é
annotationKeyet 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
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 tolerationKeyet 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 seraEquals. Si la valeur de configuration est définie sur"", l'opérateur le seraExists. -
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 sontNoExecuteNoSchedule, etPreferNoSchedule. -
jobsubmitter.node.toleration.[tolerationKey].[tolerationSeconds] -
Ajoute TolerationSeconds au préfixe.
tolerationKeyChamp facultatif. Applicable uniquement lorsque l'effet est présentNoExecute. -
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,
DISABLEDle 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 lemonitoringConfiguration, tel ques3MonitoringConfigurationou.cloudWatchMonitoringConfigurationLorsque 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-runnertâches. -
jobsubmitter.container.image.pullPolicy -
Définit imagePullPolicy
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.
Exemples de classification des soumissionnaires de tâches
Dans cette section
Demande StartJobRun avec placement de nœuds à la demande pour le pod soumissionnaire de tâches
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
StartJobRundemande avec placement d'un nœud mono-AZ et placement du type d'instance Amazon EC2 pour le module d'envoi des tâches
"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" } } ] }
StartJobRundemande avec des étiquettes, des annotations et un planificateur personnalisé pour le module d'envoi des tâches
"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" } } ] }
StartJobRundemande avec une tolérance appliquée au module d'envoi de la tâche avec clédedicated, valeur graviton_machinesNoExecute, effet et un tolerationSeconds délai de 60 secondes
"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" } } ] }
StartJobRundemande avec journalisation désactivée pour le module d'envoi de tâches
"configurationOverrides": { "applicationConfiguration": [ { "classification": "emr-job-submitter", "properties": { "jobsubmitter.logging": "DISABLED" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } }
StartJobRundemande avec image du conteneur de journalisation personnalisé, processeur et mémoire pour le module d'envoi des tâches
"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" } } }
StartJobRundemande avec une image de conteneur d'envoi de tâches personnalisée et une politique d'extraction
"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" } } ] }