Uso de discos optimizados para reproducción aleatoria - 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 discos optimizados para reproducción aleatoria

Con las EMR versiones 7.1.0 y posteriores de Amazon, puede usar discos optimizados para la reproducción aleatoria cuando ejecute tareas de Apache Spark o Hive para mejorar el rendimiento de las cargas de trabajo con un uso intensivo de E/S. En comparación con los discos estándar, los discos optimizados para la reproducción aleatoria ofrecen una mayor potencia IOPS (operaciones de E/S por segundo) para acelerar el movimiento de los datos y reducir la latencia durante las operaciones de mezcla aleatoria. Los discos optimizados para la reproducción aleatoria le permiten conectar discos de hasta 2 TB por trabajador, lo que le permite configurar la capacidad adecuada para sus requisitos de carga de trabajo.

Ventajas principales

Los discos optimizados para Shuffle ofrecen las siguientes ventajas.

  • Alto IOPS rendimiento: los discos optimizados para la reproducción aleatoria ofrecen una calidad superior a la de los discos estándar, IOPS lo que permite una reorganización de datos más rápida y eficiente durante las tareas de Spark y Hive y otras cargas de trabajo que requieren un uso intensivo de la mezcla.

  • Tamaño de disco más grande: los discos optimizados para Shuffle admiten tamaños de disco de 20 GB a 2 TB por trabajador, por lo que puede elegir la capacidad adecuada en función de sus cargas de trabajo.

Introducción

Consulte los siguientes pasos para usar discos optimizados para la reproducción aleatoria en sus flujos de trabajo.

Spark
  1. Cree una aplicación de la versión 7.1.0 EMR sin servidor con el siguiente comando.

    aws emr-serverless create-application \ --type "SPARK" \ --name my-application-name \ --release-label emr-7.1.0 \ --region <AWS_REGION>
  2. Configura tu trabajo de Spark para que incluya los parámetros spark.emr-serverless.driver.disk.type o para que se ejecute con discos spark.emr-serverless.executor.disk.type optimizados para la reproducción aleatoria. Puedes usar uno o ambos parámetros, según tu caso de uso.

    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.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1 --conf spark.emr-serverless.executor.disk.type=shuffle_optimized" } }'

    Para obtener más información, consulta las propiedades de los trabajos de Spark.

Hive
  1. Crea una aplicación de la versión 7.1.0 EMR sin servidor con el siguiente comando.

    aws emr-serverless create-application \ --type "HIVE" \ --name my-application-name \ --release-label emr-7.1.0 \ --region <AWS_REGION>
  2. Configure su trabajo de Hive para que incluya los parámetros hive.driver.disk.type o para que se ejecute con discos optimizados hive.tez.disk.type para la reproducción aleatoria. Puede usar uno o ambos parámetros, según su caso de uso.

    aws emr-serverless start-job-run \ --application-id application-id \ --execution-role-arn job-role-arn \ --job-driver '{ "hive": { "query": "s3://<DOC-EXAMPLE-BUCKET>/emr-serverless-hive/query/hive-query.ql", "parameters": "--hiveconf hive.log.explain.output=false" } }' \ --configuration-overrides '{ "applicationConfiguration": [{ "classification": "hive-site", "properties": { "hive.exec.scratchdir": "s3://<DOC-EXAMPLE-BUCKET>/emr-serverless-hive/hive/scratch", "hive.metastore.warehouse.dir": "s3://<DOC-EXAMPLE-BUCKET>/emr-serverless-hive/hive/warehouse", "hive.driver.cores": "2", "hive.driver.memory": "4g", "hive.tez.container.size": "4096", "hive.tez.cpu.vcores": "1", "hive.driver.disk.type": "shuffle_optimized", "hive.tez.disk.type": "shuffle_optimized" } }] }'

    Para obtener más información, consulta Hive job properties.

Configuración de una aplicación con capacidad preinicializada

Consulte los siguientes ejemplos para crear aplicaciones basadas en la EMR versión 7.1.0 de Amazon. Estas aplicaciones tienen las siguientes propiedades:

  • 5 controladores Spark preinicializados, cada uno con 2 VCPU, 4 GB de memoria y 50 GB de disco optimizado para reproducción aleatoria.

  • 50 ejecutores preinicializados, cada uno con 4 VCPU, 8 GB de memoria y 500 GB de disco optimizado para reproducción aleatoria.

Cuando esta aplicación ejecuta tareas de Spark, primero consume los trabajadores preinicializados y, a continuación, amplía los trabajadores bajo demanda hasta una capacidad máxima de 400 v y 1024 GB de memoria. CPU Si lo desea, puede omitir la capacidad de una u otra opción. DRIVER EXECUTOR

Spark
aws emr-serverless create-application \ --type "SPARK" \ --name <my-application-name> \ --release-label emr-7.1.0 \ --initial-capacity '{ "DRIVER": { "workerCount": 5, "workerConfiguration": { "cpu": "2vCPU", "memory": "4GB", "disk": "50GB", "diskType": "SHUFFLE_OPTIMIZED" } }, "EXECUTOR": { "workerCount": 50, "workerConfiguration": { "cpu": "4vCPU", "memory": "8GB", "disk": "500GB", "diskType": "SHUFFLE_OPTIMIZED" } } }' \ --maximum-capacity '{ "cpu": "400vCPU", "memory": "1024GB" }'
Hive
aws emr-serverless create-application \ --type "HIVE" \ --name <my-application-name> \ --release-label emr-7.1.0 \ --initial-capacity '{ "DRIVER": { "workerCount": 5, "workerConfiguration": { "cpu": "2vCPU", "memory": "4GB", "disk": "50GB", "diskType": "SHUFFLE_OPTIMIZED" } }, "EXECUTOR": { "workerCount": 50, "workerConfiguration": { "cpu": "4vCPU", "memory": "8GB", "disk": "500GB", "diskType": "SHUFFLE_OPTIMIZED" } } }' \ --maximum-capacity '{ "cpu": "400vCPU", "memory": "1024GB" }'