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 del almacenamiento sin servidor para Amazon EMR Serverless
Con las versiones 7.12 y posteriores de Amazon EMR, utilice almacenamiento sin servidor cuando ejecute trabajos de Apache Spark para eliminar el aprovisionamiento de discos locales y reducir los costes de procesamiento de datos, además de evitar errores en los trabajos debido a las limitaciones de capacidad del disco. El almacenamiento sin servidor gestiona automáticamente las operaciones de mezcla, dispersión de discos y almacenamiento en caché de disco para sus trabajos sin necesidad de configurar la capacidad y almacena los datos intermedios sin coste alguno. Amazon EMR Serverless almacena los datos intermedios en un almacenamiento sin servidor totalmente gestionado que se escala automáticamente en función de las exigencias de la carga de trabajo y permite a Spark liberar a los trabajadores de cómputo inmediatamente cuando están inactivos, lo que reduce los costes informáticos.
Ventajas principales
El almacenamiento sin servidor para EMR Serverless ofrece las siguientes ventajas.
-
Almacenamiento sin configuración: el almacenamiento sin servidor elimina la necesidad de configurar el tipo y el tamaño del disco local para cada aplicación o trabajo. EMR Serverless administra automáticamente las operaciones de datos intermedias sin planificar la capacidad.
-
Evita las fallas en los trabajos mediante el escalado automático: la capacidad de almacenamiento se escala automáticamente en función de la demanda de carga de trabajo, lo que evita que se produzcan fallas en las tareas debido a una capacidad de disco insuficiente.
-
Reducción de los costos de procesamiento de datos: el almacenamiento sin servidor reduce los costos de procesamiento mediante dos mecanismos. En primer lugar, el almacenamiento intermedio de datos se proporciona sin costo alguno; solo se paga por los recursos de cómputo y memoria. En segundo lugar, el almacenamiento disociado de la asignación dinámica de recursos de Spark permite a Spark liberar a los trabajadores inmediatamente cuando están inactivos, en lugar de retenerlos para conservar los datos intermedios en los discos locales. Esto permite una escalabilidad horizontal y horizontal más rápida por etapa de Spark, lo que reduce los costos de cómputo en trabajos en los que las etapas posteriores requieren menos trabajadores que las etapas iniciales.
-
Almacenamiento cifrado con aislamiento a nivel de trabajo: todos los datos intermedios se cifran en tránsito y en reposo con un aislamiento estricto a nivel de trabajo.
-
Soporte de control de acceso detallado: el almacenamiento sin servidor admite un control de acceso detallado a través de la integración de AWS Lake Formation.
Introducción
Consulta los siguientes pasos para usar el almacenamiento sin servidor para EMR Serverless en tus flujos de trabajo de Spark.
-
Crear una aplicación EMR sin servidor
Cree una aplicación EMR Serverless versión 7.12 (o posterior) con el almacenamiento sin servidor habilitado estableciendo la propiedad spark en true en la clasificación
spark.aws.serverlessStorage.enabledspark-defaults.aws emr-serverless create-application \ --type "SPARK" \ --namemy-application\ --release-label emr-7.12.0 \ --runtime-configuration '[{ "classification": "spark-defaults", "properties": { "spark.aws.serverlessStorage.enabled": "true" } }]' \ --region<AWS_REGION> -
Inicie un trabajo en Spark
Inicie una ejecución de tareas en su aplicación. Almacenamiento sin servidor para EMR Serverless gestiona automáticamente las operaciones de datos intermedias, como la mezcla aleatoria, para su trabajo.
aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<job-role-arn>\ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<bucket>/script.py", "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=10" } }'También puede habilitar el almacenamiento sin servidor para EMR Serverless a nivel de trabajo, incluso cuando no esté habilitado a nivel de aplicación. Esto lanzará nodos de trabajo habilitados con almacenamiento sin servidor para procesar sus trabajos. También puedes inhabilitar el almacenamiento sin servidor para un trabajo específico configurando la misma propiedad de Spark en
spark.aws.serverlessStorage.enabledfalse.# Turn on serverless storage for EMR serverless for a specific job aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<job-role-arn>\ --job-driver '{ "sparkSubmit": { "entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar", "entryPointArguments": ["1"], "sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.aws.serverlessStorage.enabled": "true" } }'nota
Para seguir utilizando el aprovisionamiento de discos locales tradicional, omite la
spark.aws.serverlessStorage.enabledconfiguración o establézcala en false.
Consideraciones y limitaciones
-
Versión de lanzamiento: el almacenamiento sin servidor es compatible con la versión 7.12 y versiones posteriores de Amazon EMR.
-
Límites de volumen de datos: cada trabajo puede leer y escribir hasta un total de 200 GB de datos intermedios por ejecución de trabajo. Los trabajos que superen este límite fallarán y aparecerá un mensaje de error que indicará que se ha alcanzado el límite de almacenamiento sin servidor.
-
Tiempo de espera de ejecución de trabajos: el almacenamiento sin servidor admite trabajos con tiempos de espera de ejecución de hasta 24 horas. Los trabajos configurados para tiempos de espera de ejecución más prolongados fallarán y aparecerá un mensaje de error.
-
Capacidad preinicializada: los trabajadores con capacidad preinicializada no admiten el almacenamiento sin servidor. Al configurar la capacidad preinicializada, solo la utilizarán los trabajos que inhabiliten explícitamente el almacenamiento sin servidor a nivel de trabajo. Los trabajos con almacenamiento sin servidor habilitado siempre aprovisionarán nuevos trabajadores a pedido y no utilizarán ninguna capacidad preinicializada, independientemente de la configuración a nivel de aplicación.
-
Tipos de carga de trabajo: el almacenamiento sin servidor no es compatible con los trabajos interactivos y de streaming.
-
Configuración de trabajo: el almacenamiento sin servidor no es compatible con los trabajadores con 1 o 2 unidades. CPUs
Compatible Regiones de AWS
EMR Serverless admite el almacenamiento sin servidor en las siguientes regiones:
-
Este de EE. UU. (Norte de Virginia)
-
Oeste de EE. UU. (Oregón)
-
Europa (Irlanda)