Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de disques optimisés pour le shuffle
Avec les versions 7.1.0 et supérieures d'Amazon EMR, vous pouvez utiliser des disques optimisés pour le shuffle lorsque vous exécutez des tâches Apache Spark ou Hive afin d'améliorer les performances des charges de travail intensives en E/S. Par rapport aux disques standard, les disques optimisés pour le shuffle fournissent des IOPS (opérations d'E/S par seconde) plus élevées pour accélérer le mouvement des données et réduire la latence lors des opérations de shuffle. Les disques optimisés pour le shuffle vous permettent d'associer des tailles de disque allant jusqu'à 2 To par utilisateur, afin que vous puissiez configurer la capacité adaptée aux exigences de votre charge de travail.
Principaux avantages
Les disques optimisés pour le shuffle offrent les avantages suivants.
-
Performances IOPS élevées : les disques optimisés pour le shuffle fournissent des IOPS plus élevées que les disques standard, ce qui permet un brassage des données plus efficace et plus rapide lors des tâches Spark et Hive et d'autres charges de travail intensives en matière de brassage.
-
Taille de disque plus importante : les disques optimisés pour le shuffle prennent en charge des tailles de disque allant de 20 Go à 2 To par utilisateur. Vous pouvez donc choisir la capacité appropriée en fonction de vos charges de travail.
Premiers pas
Consultez les étapes suivantes pour utiliser des disques optimisés pour le shuffle dans vos flux de travail.
- Spark
-
-
Créez une application EMR Serverless version 7.1.0 à l'aide de la commande suivante.
aws emr-serverless create-application \
--type "SPARK" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Configurez votre tâche Spark pour inclure les paramètres spark.emr-serverless.driver.disk.type
et/ou pour qu'elle s'exécute avec des disques optimisés spark.emr-serverless.executor.disk.type
pour le shuffle. Vous pouvez utiliser l'un des paramètres ou les deux, selon votre cas d'utilisation.
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"
}
}'
Pour plus d'informations, consultez la section Propriétés des tâches Spark.
- Hive
-
-
Créez une application EMR Serverless version 7.1.0 à l'aide de la commande suivante.
aws emr-serverless create-application \
--type "HIVE" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Configurez votre tâche Hive pour inclure les paramètres hive.driver.disk.type
et/ou pour qu'elle s'exécute avec des hive.tez.disk.type
disques optimisés pour le shuffle. Vous pouvez utiliser l'un des paramètres ou les deux, selon votre cas d'utilisation.
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"
}
}]
}'
Pour plus d'informations, consultez les propriétés des tâches Hive.
Configuration d'une application avec une capacité pré-initialisée
Consultez les exemples suivants pour créer des applications basées sur Amazon EMR version 7.1.0. Ces applications présentent les propriétés suivantes :
-
5 pilotes Spark préinitialisés, chacun doté de 2 vCPU, de 4 Go de mémoire et de 50 Go de disque optimisé pour le shuffle.
-
50 exécuteurs préinitialisés, chacun doté de 4 vCPU, 8 Go de mémoire et 500 Go de disque optimisé pour le shuffle.
Lorsque cette application exécute des tâches Spark, elle consomme d'abord les tâches préinitialisées, puis fait évoluer les tâches à la demande jusqu'à la capacité maximale de 400 vCPU et 1 024 Go de mémoire. Vous pouvez éventuellement omettre la capacité pour l'un DRIVER
ou EXECUTOR
l'autre.
- 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"
}'