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.
Creación y administración de clústeres de Amazon EMR en EKS con AWS Step Functions
Aprenda a integrar AWS Step Functions con Amazon EMR en EKS utilizando las API de integración del servicio Amazon EMR on EKS. Las API de integración de servicios son las mismas que las correspondientes API de Amazon EMR en EKS, pero no todas las API admiten todos los patrones de integración, como se muestra en la siguiente tabla.
Para obtener más información sobre la integración con los servicios de AWS en Step Functions, consulte Integración de los servicios de y Cómo pasar parámetros a una API de servicio en Step Functions.
Diferencia entre la integración optimizada de Amazon EMR o EKS y la integración del SDK de AWS Amazon EMR o EKS
-
Se admite el patrón de integración Ejecutar un trabajo (.sync).
-
No hay optimizaciones específicas para el patrón de integración Respuesta de la solicitud.
-
No se admite el patrón de integración Cómo esperar una devolución de llamada con el token de tarea.
nota
Para su integración con Amazon EMR, Step Functions tiene una frecuencia de sondeo de trabajo codificada de 60 segundos durante los primeros 10 minutos y de 300 segundos después.
| API | Respuesta de la solicitud | Ejecutar un trabajo (.sync) |
|---|---|---|
| CreateVirtualCluster | Compatible | No admitido |
| DeleteVirtualCluster | Soportado | Compatible |
| StartJobRun | Soportado | Compatible |
API de Amazon EMR en EKS compatibles:
Cuota para datos de entrada o de resultados
Al enviar o recibir datos entre servicios, la entrada o resultado máximo de una tarea es de 256 KiB de datos como cadena codificada en UTF-8. Consulte Cuotas relacionadas con ejecuciones de máquinas de estado.
El ejemplo siguiente incluye un estado Task que crea un clúster virtual.
"Create_Virtual_Cluster": {
"Type": "Task",
"Resource": "arn:aws:states:::emr-containers:createVirtualCluster",
"Arguments": {
"Name": "MyVirtualCluster",
"ContainerProvider": {
"Id": "EKSClusterName",
"Type": "EKS",
"Info": {
"EksInfo": {
"Namespace": "Namespace"
}
}
}
},
"End": true
}El ejemplo siguiente incluye un estado Task que envía un trabajo a un clúster virtual y espera a que finalice.
"Submit_Job": {
"Type": "Task",
"Resource": "arn:aws:states:::emr-containers:startJobRun.sync",
"Arguments": {
"Name": "MyJobName",
"VirtualClusterId": "{% $VirtualClusterId %}",
"ExecutionRoleArn": "arn:aws:iam::<accountId>:role/job-execution-role",
"ReleaseLabel": "emr-6.2.0-latest",
"JobDriver": {
"SparkSubmitJobDriver": {
"EntryPoint": "s3://<amzn-s3-demo-bucket>/jobs/trip-count.py",
"EntryPointArguments": [
"60"
],
"SparkSubmitParameters": "--conf spark.driver.cores=2 --conf spark.executor.instances=10 --conf spark.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=10G --conf spark.driver.memory=10G --conf spark.executor.cores=1 --conf spark.dynamicAllocation.enabled=false"
}
},
"ConfigurationOverrides": {
"ApplicationConfiguration": [
{
"Classification": "spark-defaults",
"Properties": {
"spark.executor.instances": "2",
"spark.executor.memory": "2G"
}
}
],
"MonitoringConfiguration": {
"PersistentAppUI": "ENABLED",
"CloudWatchMonitoringConfiguration": {
"LogGroupName": "MyLogGroupName",
"LogStreamNamePrefix": "MyLogStreamNamePrefix"
},
"S3MonitoringConfiguration": {
"LogUri": "s3://<amzn-s3-demo-logging-bucket1>"
}
}
},
"Tags": {
"taskType": "jobName"
}
},
"End": true
}El ejemplo siguiente incluye un estado Task que elimina un clúster virtual y espera a que finalice.
"Delete_Virtual_Cluster": {
"Type": "Task",
"Resource": "arn:aws:states:::emr-containers:deleteVirtualCluster.sync",
"Arguments": {
"Id": "{% $states.input.VirtualClusterId %}",
},
"End": true
}Para obtener información acerca de cómo configurar permisos de IAM cuando se utiliza Step Functions con otros servicios de AWS, consulte Generación de políticas de IAM para servicios integrados por Steps Functions.