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
El módulo Amazon EMR on EKS StartJobRun
request crea un módulo de envío de trabajos (también conocido como módulo job-runner) para generar el controlador Spark. Puedes usar la emr-job-submitter
clasificación para configurar los selectores de nodos para el módulo de envío de trabajos, así como configurar la imagen y la memoria para el contenedor de CPU registro del módulo de envío de trabajos.
Los siguientes ajustes están disponibles en la clasificación: emr-job-submitter
jobsubmitter.node.selector.[
labelKey
]-
Agrega al selector de nodos del pod de remitente de trabajos, con la clave
y el valor como el valor de configuración para la configuración. Por ejemplo, puede establecerlabelKey
jobsubmitter.node.selector.identifier
enmyIdentifier
y el pod de remitentes de trabajos tendrá un valor de identificador clave demyIdentifier
. Esto se puede usar para especificar en qué nodos se puede colocar el módulo de presentación de trabajos. Para agregar varias claves de selección de nodos, defina varias configuraciones con este prefijo. jobsubmitter.logging.image
-
Establece una imagen personalizada que se utilizará en el contenedor de registro del módulo de envío de trabajos.
jobsubmitter.logging.request.cores
-
Establece un valor personalizado para el númeroCPUs, en CPU unidades, del contenedor de registro del módulo de envío de trabajos. De forma predeterminada, está establecido en 100 m.
jobsubmitter.logging.request.memory
-
Establece un valor personalizado para la cantidad de memoria, en bytes, del contenedor de registro del módulo de envío de trabajos. De forma predeterminada, está establecido en 200 MB. Un mebibyte es una unidad de medida similar a un megabyte.
Recomendamos colocar los módulos de presentación de trabajos en las instancias bajo demanda. Colocar los módulos de envío de trabajos en las instancias puntuales podría provocar un error en el trabajo si la instancia en la que se ejecuta el módulo de envío de trabajos está sujeta a una interrupción de la instancia puntual. También puede colocar el pod de remitente de trabajos en una única zona de disponibilidad o utilizar cualquier etiqueta de Kubernetes que se aplique a los nodos.
Ejemplos de clasificación de remitentes de trabajos
En esta sección
- Solicitud de StartJobRun con ubicación de nodos bajo demanda para el pod de remitente de trabajos
- Solicitud de StartJobRun con colocación de nodos Single-AZ para el pod de remitente de trabajos
- StartJobRunsolicitud con ubicación de tipo EC2 instancia Single-AZ y de tipo Amazon para el pod de remitente del trabajo
- StartJobRunsolicitud con contenedor de registro personalizadoCPU, imagen y memoria
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
Solicitud de StartJobRun
con colocación de nodos Single-AZ para el pod de remitente de trabajos
cat >spark-python-in-s3-nodeselector-job-submitter-az.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.topology.kubernetes.io/zone": "Availability Zone
" } } ], "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-az.json
StartJobRun
solicitud con ubicación de tipo EC2 instancia Single-AZ y de tipo Amazon para el pod de remitente del trabajo
{ "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.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=20G --conf spark.driver.memory=15G --conf spark.executor.cores=6 --conf spark.sql.shuffle.partitions=1000" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.dynamicAllocation.enabled":"false", } }, { "classification": "emr-job-submitter", "properties": { "jobsubmitter.node.selector.topology.kubernetes.io/zone": "Availability Zone
", "jobsubmitter.node.selector.node.kubernetes.io/instance-type":"m5.4xlarge
" } } ], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": "/emr-containers/jobs", "logStreamNamePrefix": "demo" }, "s3MonitoringConfiguration": { "logUri": "s3://joblogs" } } } }
StartJobRun
solicitud con contenedor de registro personalizadoCPU, imagen y memoria
{ "name": "spark-python", "virtualClusterId": "virtual-cluster-id", "executionRoleArn": "execution-role-arn", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "s3://S3-prefix/trip-count.py" } }, "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" } } } }