Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di dischi ottimizzati per la riproduzione casuale
Con le EMR versioni 7.1.0 e successive di Amazon, puoi usare dischi ottimizzati per lo shuffle quando esegui i job Apache Spark o Hive per migliorare le prestazioni per carichi di lavoro a uso intensivo di I/O. Rispetto ai dischi standard, i dischi ottimizzati per lo shuffle offrono prestazioni superiori IOPS (operazioni di I/O al secondo) per uno spostamento più rapido dei dati e una latenza ridotta durante le operazioni di shuffle. I dischi ottimizzati per lo shuffle consentono di collegare dischi di dimensioni fino a 2 TB per lavoratore, in modo da poter configurare la capacità appropriata per i requisiti del carico di lavoro.
Vantaggi principali
I dischi ottimizzati per lo shuffle offrono i seguenti vantaggi.
-
IOPSPrestazioni elevate: i dischi ottimizzati per lo shuffle offrono prestazioni superiori IOPS rispetto ai dischi standard, il che consente uno shuffling dei dati più efficiente e rapido durante i job Spark e Hive e altri carichi di lavoro che richiedono un uso intensivo dello shuffle.
-
Dimensioni del disco più grandi: i dischi ottimizzati per Shuffle supportano dimensioni del disco da 20 GB a 2 TB per lavoratore, in modo da poter scegliere la capacità appropriata in base ai carichi di lavoro.
Nozioni di base
Consulta i passaggi seguenti per utilizzare dischi ottimizzati per lo shuffle nei flussi di lavoro.
- Spark
-
-
Crea un'applicazione EMR Serverless release 7.1.0 con il seguente comando.
aws emr-serverless create-application \
--type "SPARK" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Configura il tuo job Spark per includere i parametri spark.emr-serverless.driver.disk.type
e/o per l'esecuzione con dischi ottimizzati spark.emr-serverless.executor.disk.type
per lo shuffle. Puoi utilizzare uno o entrambi i parametri, a seconda del caso d'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"
}
}'
Per maggiori informazioni, consulta Spark job properties.
- Hive
-
-
Crea un'applicazione EMR Serverless release 7.1.0 con il seguente comando.
aws emr-serverless create-application \
--type "HIVE" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Configura il tuo job Hive per includere i parametri hive.driver.disk.type
e/o per l'esecuzione con dischi ottimizzati hive.tez.disk.type
per lo shuffle. È possibile utilizzare uno o entrambi i parametri, a seconda del caso d'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"
}
}]
}'
Per ulteriori informazioni, consulta Hive job properties.
Configurazione di un'applicazione con capacità preinizializzata
Guarda i seguenti esempi per creare applicazioni basate sulla EMR release 7.1.0 di Amazon. Queste applicazioni hanno le seguenti proprietà:
-
5 driver Spark preinizializzati, ciascuno con 2 vCPU, 4 GB di memoria e 50 GB di disco ottimizzato per lo shuffle.
-
50 executor preinizializzati, ciascuno con 4 vCPU, 8 GB di memoria e 500 GB di disco ottimizzato per lo shuffle.
Quando questa applicazione esegue i job Spark, utilizza innanzitutto i worker preinizializzati e quindi ridimensiona i worker su richiesta fino alla capacità massima di 400 v e 1024 GB di memoria. CPU Facoltativamente, puoi omettere la capacità per uno o. 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"
}'