Serverlosen Speicher für Amazon EMR Serverless verwenden - Amazon EMR

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.

Serverlosen Speicher für Amazon EMR Serverless verwenden

Verwenden Sie bei Amazon EMR-Versionen 7.12 und höher serverlosen Speicher, wenn Sie Apache Spark-Jobs ausführen, um die lokale Festplattenbereitstellung zu vermeiden, die Datenverarbeitungskosten zu senken und Jobausfälle aufgrund von Festplattenkapazitätsbeschränkungen zu verhindern. Serverloser Speicher verarbeitet automatisch Shuffle-, Disk Spill- und Disk-Caching-Operationen für Ihre Jobs, ohne dass eine Kapazitätskonfiguration erforderlich ist, und speichert Zwischendaten kostenlos. Amazon EMR Serverless speichert Zwischendaten in einem vollständig verwalteten serverlosen Speicher, der je nach Workload-Anforderungen automatisch skaliert wird und es Spark ermöglicht, Rechenarbeiter sofort freizugeben, wenn sie inaktiv sind, wodurch die Rechenkosten gesenkt werden.

Wichtigste Vorteile

Serverloser Speicher für EMR Serverless bietet die folgenden Vorteile.

  • Speicher ohne Konfiguration — Serverloser Speicher macht es überflüssig, den Typ und die Größe der lokalen Festplatte für jede Anwendung oder jeden Job zu konfigurieren. EMR Serverless verwaltet automatisch Zwischendatenoperationen ohne Kapazitätsplanung.

  • Beugt Jobausfällen durch automatische Skalierung vor — Die Speicherkapazität wird automatisch auf der Grundlage des Workload-Bedarfs skaliert und verhindert so Jobausfälle aufgrund unzureichender Festplattenkapazität.

  • Geringere Datenverarbeitungskosten — Serverloser Speicher senkt die Verarbeitungskosten durch zwei Mechanismen. Erstens wird der Datenzwischenspeicher kostenlos bereitgestellt — Sie zahlen nur für Rechen- und Speicherressourcen. Zweitens ermöglicht der entkoppelte Speicher mit der dynamischen Ressourcenzuweisung von Spark es Spark, Mitarbeiter sofort freizugeben, wenn sie inaktiv sind, anstatt sie zu behalten, um Zwischendaten auf lokalen Festplatten aufzubewahren. Dies ermöglicht eine schnellere Skalierung und Skalierung pro Spark-Phase und reduziert so die Rechenkosten für Jobs, bei denen in späteren Phasen weniger Mitarbeiter benötigt werden als in der Anfangsphase.

  • Verschlüsselter Speicher mit Isolierung auf Jobebene — Alle zwischengeschalteten Daten werden bei der Übertragung und im Ruhezustand mit strikter Isolierung auf Jobebene verschlüsselt.

  • Unterstützung für feinkörnige Zugriffskontrolle — Serverloser Speicher unterstützt eine differenzierte Zugriffskontrolle durch die Integration von AWS Lake Formation.

Erste Schritte

Sehen Sie sich die folgenden Schritte an, um serverlosen Speicher für EMR Serverless in Ihren Spark-Workflows zu verwenden.

  1. Eine serverlose EMR-Anwendung erstellen

    Erstellen Sie eine EMR Serverless Version 7.12 (oder höher) mit aktiviertem serverlosem Speicher, indem Sie die Eigenschaft spark in der Spark-Defaults-Klassifizierung spark.aws.serverlessStorage.enabled auf true setzen.

    aws emr-serverless create-application \ --type "SPARK" \ --name my-application \ --release-label emr-7.12.0 \ --runtime-configuration '[{ "classification": "spark-defaults", "properties": { "spark.aws.serverlessStorage.enabled": "true" } }]' \ --region <AWS_REGION>
  2. Starten Sie einen Spark-Job

    Starten Sie einen Job, der auf Ihrer Anwendung ausgeführt wird. Serverloser Speicher für EMR Serverless verarbeitet automatisch zwischengeschaltete Datenoperationen wie Shuffle für Ihren Job.

    aws emr-serverless start-job-run \ --application-id <application-id> \ --execution-role-arn <job-role-arn> \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<bucket>/script.py", "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=10" } }'

    Sie können serverlosen Speicher für EMR Serverless auch auf Auftragsebene aktivieren, auch wenn er auf Anwendungsebene nicht aktiviert ist. Dadurch werden Worker-Knoten gestartet, die mit serverlosem Speicher ausgestattet sind, um Ihre Jobs zu verarbeiten. Sie können den serverlosen Speicher auch für einen bestimmten Job deaktivieren, indem Sie dieselbe Spark-Eigenschaft spark.aws.serverlessStorage.enabled auf false setzen.

    # Turn on serverless storage for EMR serverless for a specific job 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.aws.serverlessStorage.enabled": "true" } }'
    Anmerkung

    Um weiterhin die herkömmliche Bereitstellung lokaler Festplatten zu verwenden, lassen Sie die spark.aws.serverlessStorage.enabled Konfiguration weg oder setzen Sie sie auf False.

Überlegungen und Einschränkungen

  • Release-Version — Serverloser Speicher wird in Amazon EMR Version 7.12 und höher unterstützt.

  • Grenzwerte für das Datenvolumen — Jeder Auftrag kann bis zu 200 GB an Zwischendaten pro Auftragsausführung lesen und schreiben. Aufträge, die dieses Limit überschreiten, schlagen fehl und es wird eine Fehlermeldung angezeigt, die darauf hinweist, dass das Speicherlimit für serverloses Speichern erreicht wurde.

  • Timeout bei der Auftragsausführung — Serverloser Speicher unterstützt Jobs mit Ausführungszeitüberschreitungen von bis zu 24 Stunden. Jobs, die für längere Ausführungszeitlimits konfiguriert sind, schlagen mit einer Fehlermeldung fehl.

  • Vorinitialisierte Kapazität — Vorinitialisierte Capacity-Worker unterstützen keinen serverlosen Speicher. Wenn Sie vorinitialisierte Kapazität konfigurieren, wird sie nur von Aufträgen genutzt, bei denen serverloser Speicher auf Auftragsebene explizit deaktiviert wird. Jobs mit aktiviertem serverlosem Speicher stellen bei Bedarf immer neue Mitarbeiter bereit und nutzen keine vorinitialisierte Kapazität, unabhängig von der Konfiguration auf Anwendungsebene.

  • Workload-Typen — Serverloser Speicher wird für Streaming- und interaktive Jobs nicht unterstützt.

  • Worker-Konfiguration — Serverloser Speicher wird für Worker mit 1 oder 2 V nicht unterstützt. CPUs

Unterstützt AWS-Regionen

EMR Serverless unterstützt serverlosen Speicher in den folgenden Regionen:

  • USA Ost (Nord-Virginia)

  • USA West (Oregon)

  • Europa (Irland)