Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von für Shuffle optimierten Festplatten
Mit den Amazon EMR-Versionen 7.1.0 und höher können Sie für Shuffle optimierte Festplatten verwenden, wenn Sie Apache Spark- oder Hive-Jobs ausführen, um die Leistung für I/O-intensive workloads.
Compared to standard disks, shuffle-optimized disks provide higher IOPS (I/O Operationen pro Sekunde zu verbessern und so die Datenbewegung zu beschleunigen und die Latenz bei Shuffle-Vorgängen zu reduzieren. Mit Shuffle-optimierten Festplatten können Sie Festplattengrößen von bis zu 2 TB pro Worker zuordnen, sodass Sie die entsprechende Kapazität für Ihre Workload-Anforderungen konfigurieren können.
Wichtigste Vorteile
Für den Shuffle-Modus optimierte Festplatten bieten die folgenden Vorteile.
-
Hohe IOPS-Leistung — Für Shuffle optimierte Festplatten bieten höhere IOPS als Standardfestplatten, was zu einer effizienteren und schnelleren Datenmischung bei Spark- und Hive-Jobs und anderen Shuffle-intensiven Workloads führt.
-
Größere Festplattengröße — Für Shuffle optimierte Festplatten unterstützen Festplattengrößen von 20 GB bis 2 TB pro Mitarbeiter, sodass Sie je nach Arbeitslast die passende Kapazität auswählen können.
Erste Schritte
Sehen Sie sich die folgenden Schritte an, um für Shuffle optimierte Festplatten in Ihren Workflows zu verwenden.
- Spark
-
-
Erstellen Sie mit dem folgenden Befehl eine EMR Serverless Release 7.1.0-Anwendung.
aws emr-serverless create-application \
--type "SPARK" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Konfigurieren Sie Ihren Spark-Job so, dass er die Parameter für die Ausführung mit spark.emr-serverless.driver.disk.type
and/or spark.emr-serverless.executor.disk.type
für Shuffle optimierten Festplatten enthält. Sie können je nach Anwendungsfall entweder einen oder beide Parameter verwenden.
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"
}
}'
Weitere Informationen finden Sie unter Spark-Jobeigenschaften.
- Hive
-
-
Erstellen Sie mit dem folgenden Befehl eine EMR Serverless Release 7.1.0-Anwendung.
aws emr-serverless create-application \
--type "HIVE" \
--name my-application-name \
--release-label emr-7.1.0 \
--region <AWS_REGION>
-
Konfigurieren Sie Ihren Hive-Job so, dass er die Parameter für die Ausführung mit für Shuffle hive.driver.disk.type
and/or hive.tez.disk.type
optimierten Festplatten enthält. Sie können je nach Anwendungsfall einen oder beide Parameter verwenden.
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"
}
}]
}'
Weitere Informationen finden Sie unter Hive-Jobeigenschaften.
Konfiguration einer Anwendung mit vorinitialisierter Kapazität
Sehen Sie sich die folgenden Beispiele an, um Anwendungen zu erstellen, die auf Amazon EMR Version 7.1.0 basieren. Diese Anwendungen haben die folgenden Eigenschaften:
-
5 vorinitialisierte Spark-Treiber mit jeweils 2 vCPUs, 4 GB Arbeitsspeicher und 50 GB Shuffle-optimierter Festplatte.
-
50 vorinitialisierte Executoren mit jeweils 4 vCPUs, 8 GB Arbeitsspeicher und 500 GB Shuffle-optimierter Festplatte.
Wenn diese Anwendung Spark-Jobs ausführt, verbraucht sie zuerst die vorinitialisierten Worker und skaliert dann die On-Demand-Worker auf die maximale Kapazität von 400 vCPU und 1024 GB Arbeitsspeicher. Optional können Sie die Kapazität für entweder oder weglassen. 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"
}'