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 costos de procesamiento de datos, así como para evitar errores en los trabajos debido a las restricciones de capacidad del disco. El almacenamiento sin servidor gestiona automáticamente las operaciones de mezcla, transferencia y almacenamiento en caché de discos 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 demandas de la carga de trabajo y permite a Spark liberar a los trabajadores informáticos 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.
-
Zero-configuration almacenamiento: 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 la carga de trabajo, lo que evita que se produzcan errores en los trabajos 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 computación y memoria. En segundo lugar, el almacenamiento desacoplado con 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 procesamiento de los trabajos en los que las etapas posteriores necesitan 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 estricto aislamiento a nivel de trabajo.
-
Fine-grained soporte de control de acceso: el almacenamiento sin servidor permite un control de acceso detallado mediante la integración de Lake Formation. AWS
Introducción
Consulta los siguientes pasos para usar el almacenamiento sin servidor para EMR Serverless en tus flujos de trabajo de Spark.
-
Crea una aplicación EMR Serverless
Cree una aplicación EMR Serverless 7.12 (o posterior) con el almacenamiento sin servidor habilitado.
spark.aws.serverlessStorage.enabledPara ello, establezca la propiedad spark en true en la clasificación spark-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
Inicia una ejecución de trabajo en tu aplicación. El almacenamiento sin servidor para EMR Serverless gestiona automáticamente las operaciones de datos intermedias, como la reorganización de 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. De este modo, se lanzarán nodos de trabajo habilitados con almacenamiento sin servidor para procesar sus trabajos. También puedes deshabilitar el almacenamiento sin servidor para un trabajo específico si configuras 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 usando el aprovisionamiento tradicional de discos locales, omite la
spark.aws.serverlessStorage.enabledconfiguración o establécela como falsa.
Consideraciones y limitaciones
-
Versión de lanzamiento: el almacenamiento sin servidor es compatible con la versión 7.12 y posteriores de Amazon EMR.
-
Límites de volumen de datos: con emr-7.12, emr-7.13 y emr-spark-8.0, cada trabajo puede leer y escribir hasta 200 GB de datos intermedios por ejecución de trabajo. Para el emr-7.14 y versiones posteriores, incluido el emr-spark-8.1, este límite aumenta a 1 TB, excepto en las regiones que, a continuación, especifican un límite de 200 GB en la sección Compatible. Regiones de AWS Los trabajos que superen el límite aplicable fallarán y aparecerán un mensaje de error que indicará que se ha alcanzado el límite de almacenamiento sin servidor.
-
Tiempo de espera de ejecución: 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 mostrarán un mensaje de error.
-
Pre-initialized capacidad: los trabajadores con Pre-initialized capacidad 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 el almacenamiento sin servidor habilitado siempre aprovisionarán a nuevos trabajadores cuando lo soliciten 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 CPU virtuales.
compatible Regiones de AWS
EMR Serverless admite el almacenamiento sin servidor en las siguientes regiones:
-
Este de EE. UU. (Norte de Virginia)
-
Este de EE. UU. (Ohio)
-
Oeste de EE. UU. (Norte de California)
-
Oeste de EE. UU. (Oregón)
-
Asia-Pacífico (Hong Kong)
-
Asia-Pacífico (Yakarta)
-
Asia-Pacífico (Mumbai)
-
Asia-Pacífico (Osaka)
-
Asia-Pacífico (Seúl)
-
Asia-Pacífico (Singapur)
-
Asia-Pacífico (Sídney)
-
Asia-Pacífico (Tokio)
-
Canadá (centro)
-
Europa (Fráncfort)
-
Europa (Irlanda)
-
Europa (España)
-
Europa (Estocolmo)
-
América del Sur (São Paulo)
-
África (Ciudad del Cabo): límite de 200 GB
-
Asia Pacífico (Melbourne): límite de 200 GB
-
Canadá Oeste (Calgary): límite de 200 GB
-
Europa (Londres): límite de 200 GB
-
Europa (Milán): límite de 200 GB
-
Europa (París): límite de 200 GB
-
Europa (Zúrich): límite de 200 GB