Uso de la clasificación de remitentes de trabajos - Amazon EMR

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

Descripción general de

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 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 prefijotolerationKey. Este campo es obligatorio al añadir tolerancias. Los valores permitidos para el campo de efecto son NoExecuteNoSchedule, yPreferNoSchedule.

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ódulomonitoringConfiguration, 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 imagePullPolicylos 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é aplicada a los nodos.

Ejemplos de clasificación de remitentes de trabajos

Solicitud de StartJobRun con ubicación de nodos bajo demanda para el pod de remitente de trabajos

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

StartJobRunsolicitud con ubicación de nodo Single-AZ y ubicación de tipo instancia Amazon EC2 para el pod de remitente del trabajo

"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" } } ] }

StartJobRunsolicitud con etiquetas, anotaciones y un programador personalizado para el pod del remitente del trabajo

"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" } } ] }

StartJobRunsolicitud con una tolerancia aplicada al módulo de presentación del trabajo con la clavededicated, el valorgraviton_machines, el efecto y una de NoExecute 60 segundos tolerationSeconds

"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" } } ] }

StartJobRunsolicitud con el registro deshabilitado para el módulo de envío de trabajos

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

StartJobRunsolicitud con imagen, CPU y memoria de contenedor de registro personalizados para el módulo de envío de trabajos

"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" } } }

StartJobRunsolicitud con un contenedor de envío de trabajos personalizado, imagen y política de extracción

"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" } } ] }