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 versiones 7.1.0 y posteriores de Amazon EMR, utilice discos optimizados para la reproducción aleatoria cuando ejecute tareas de Apache Spark o Hive para mejorar el rendimiento de las cargas de trabajo. I/O-intensive En comparación con los discos estándar, los discos optimizados para la reproducción aleatoria ofrecen mayores IOPS (I/O operaciones por segundo) para acelerar el movimiento de los datos y reducir la latencia durante las operaciones de mezcla aleatoria. Shuffle-optimized los discos le permiten conectar discos de hasta 2 TB por trabajador, por lo que debe configurar la capacidad adecuada para sus requisitos de carga de trabajo.
Ventajas principales
Shuffle-optimized los discos ofrecen las siguientes ventajas.
-
Alto rendimiento y IOPS: Shuffle-optimized los discos superan a los discos estándar tanto en IOPS como en rendimiento, lo que beneficia a cualquier I/O-heavy operación: la mezcla de datos, los derrames de discos, las etapas de clasificación y la materialización temporal de datos en las tareas de Spark y Hive.
-
Rendimiento de disco escalado: para los trabajadores de gran tamaño (8 vCPU o más), los discos optimizados para la reproducción aleatoria ofrecen IOPS y un rendimiento proporcionalmente más altos con cada incremento de 500 GB siempre que sea posible, lo que permite mantener el rendimiento del disco adaptado a su capacidad de procesamiento.
-
Tamaño de disco más grande: Shuffle-optimized los discos admiten tamaños de disco de 20 GB a 2 TB por trabajador, por lo que debe 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
-
-
Cree una aplicación EMR sin servidor versión 7.1.0 con el siguiente comando.
aws emr-serverless create-application \
--type "SPARK" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Configura tu trabajo de Spark para que incluya los parámetros que se ejecutarán con discos spark.emr-serverless.driver.disk.type and/or spark.emr-serverless.executor.disk.type optimizados para la reproducción aleatoria. Puede utilizar uno o ambos parámetros en función de su 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, consulte Spark job properties.
- Hive
-
-
Cree una aplicación EMR sin servidor versión 7.1.0 con el siguiente comando.
aws emr-serverless create-application \
--type "HIVE" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Configura tu trabajo de Hive para que incluya los parámetros que se ejecutarán con discos optimizados hive.driver.disk.type and/or hive.tez.disk.type para la reproducción aleatoria. Puede utilizar uno o ambos parámetros en función de 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, consulte Propiedades de trabajos de Hive.
Configuración de una aplicación con capacidad preinicializada
Consulte los siguientes ejemplos para crear aplicaciones basadas en la versión 7.1.0 de Amazon EMR. Estas aplicaciones tienen las propiedades siguientes:
-
5 controladores de 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, escala verticalmente los trabajadores bajo demanda hasta la capacidad máxima de 400 vCPU y 1024 GB de memoria. Si lo desea, puede omitir la capacidad del trabajador del DRIVER o del 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"
}'