Daten in Amazon S3 Express One Zone hochladen - 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.

Daten in Amazon S3 Express One Zone hochladen

Übersicht

Mit Amazon EMR 6.15.0 und höher können Sie Amazon EMR mit Apache Spark in Verbindung mit der Amazon S3 Express One Zone-Speicherklasse verwenden, um die Leistung Ihrer Spark-Jobs zu verbessern. EMRAmazon-Versionen 7.2.0 und höher unterstützen HBase auch Flink und Hive, sodass Sie auch von S3 Express One Zone profitieren können, wenn Sie diese Anwendungen verwenden. S3 Express One Zone ist eine S3-Speicherklasse für Anwendungen, die häufig mit Hunderttausenden Anfragen pro Sekunde auf Daten zugreifen. Zum Zeitpunkt seiner Veröffentlichung bietet S3 Express One Zone den Cloud-Objektspeicher mit der niedrigsten Latenz und der höchsten Leistung in Amazon S3.

Voraussetzungen

  • Berechtigungen für S3 Express One Zone – Wenn S3 Express One Zone eine Aktion wie GET, LIST oder PUT für ein Amazon-S3-Objekt aufruft, ruft die Speicherklasse CreateSession in Ihrem Namen auf. Ihre IAM Richtlinie muss die s3express:CreateSession Genehmigung zulassen, damit der S3A Connector den aufrufen kann. CreateSession API Ein Beispielrichtlinie mit dieser Berechtigung finden Sie unter Erste Schritte mit Amazon S3 Express One Zone.

  • S3A-Konnektor – Um Ihren Spark-Cluster für den Zugriff auf Daten aus einem Amazon-S3-Bucket zu konfigurieren, der die Speicherklasse S3 Express One Zone verwendet, müssen Sie den Apache-Hadoop-Konnektor S3A verwenden. Um den Connector zu verwenden, stellen Sie sicher, dass alle S3 das s3a Schema URIs verwenden. Wenn dies nicht der Fall ist, können Sie die Dateisystemimplementierung, die Sie für s3- und s3n-Schemata verwenden, ändern.

Um das s3-Schema zu ändern, geben Sie die folgenden Clusterkonfigurationen an:

[ { "Classification": "core-site", "Properties": { "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Um das s3n-Schema zu ändern, geben Sie die folgenden Clusterkonfigurationen an:

[ { "Classification": "core-site", "Properties": { "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Erste Schritte mit Amazon S3 Express One Zone

Eine Berechtigungsrichtlinie erstellen

Bevor Sie einen Cluster erstellen können, der Amazon S3 Express One Zone verwendet, müssen Sie eine IAM Richtlinie erstellen, die an das EC2 Amazon-Instance-Profil für den Cluster angehängt wird. Die Richtlinie muss über Berechtigungen für den Zugriff auf die Speicherklasse S3 Express One Zone verfügen. Die folgende Beispielrichtlinie zeigt, wie die erforderliche Berechtigung gewährt wird. Nachdem Sie die Richtlinie erstellt haben, fügen Sie die Richtlinie der Instance-Profilrolle hinzu, die Sie zur Erstellung Ihres EMR Clusters verwenden, wie im Ihren Cluster erstellen und konfigurieren Abschnitt beschrieben.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3express:region-code:account-id:bucket/DOC-EXAMPLE-BUCKET", "Action": [ "s3express:CreateSession" ] } ] }

Ihren Cluster erstellen und konfigurieren

Erstellen Sie als Nächstes einen Cluster, auf dem SparkHBase, Flink oder Hive mit S3 Express One Zone ausgeführt wird. Die folgenden Schritte beschreiben einen allgemeinen Überblick über die Erstellung eines Clusters in der AWS Management Console:

  1. Navigieren Sie zur EMR Amazon-Konsole und wählen Sie in der Seitenleiste Cluster aus. Wählen Sie dann Create cluster (Cluster erstellen) aus.

  2. Wenn Sie Spark verwenden, wählen Sie EMR Amazon-Version emr-6.15.0 oder höher. Wenn Sie Flink oder Hive verwendenHBase, wählen Sie emr-7.2.0 eine höhere Version.

  3. Wählen Sie die Anwendungen aus, die Sie in Ihren Cluster aufnehmen möchten, z. B. Spark oder HBase Flink.

  4. Um Amazon S3 Express One Zone zu aktivieren, geben Sie im Abschnitt Softwareeinstellungen eine Konfiguration ein, die dem folgenden Beispiel ähnelt. Die Konfigurationen und empfohlenen Werte werden in dem Abschnitt Konfigurationsübersicht beschrieben, der diesem Verfahren folgt.

    [ { "Classification": "core-site", "Properties": { "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider", "fs.s3a.change.detection.mode": "none", "fs.s3a.endpoint.region": "aa-example-1", "fs.s3a.select.enabled": "false" } }, { "Classification": "spark-defaults", "Properties": { "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  5. Wählen Sie im EMR Abschnitt EC2Instanzprofil für Amazon aus, ob Sie eine vorhandene Rolle verwenden möchten, und verwenden Sie eine Rolle mit der angehängten Richtlinie, die Sie im obigen Eine Berechtigungsrichtlinie erstellen Abschnitt erstellt haben.

  6. Konfigurieren Sie die restlichen Cluster-Einstellungen entsprechend Ihrer Anwendung und wählen Sie dann Create cluster (Cluster erstellen) aus.

Konfigurationsübersicht

In den folgenden Tabellen werden die Konfigurationen und vorgeschlagenen Werte beschrieben, die Sie angeben sollten, wenn Sie einen Cluster einrichten, der S3 Express One Zone mit Amazon verwendetEMR, wie im Ihren Cluster erstellen und konfigurieren Abschnitt beschrieben.

S3A-Konfigurationen

Parameter Standardwert Empfohlener Wert Erklärung

fs.s3a.aws.credentials.provider

Wenn nicht angegeben, wird AWSCredentialProviderList in der folgenden Reihenfolge verwendet: TemporaryAWSCredentialsProvider, SimpleAWSCredentialsProvider, EnvironmentVariableCredentialsProvider, IAMInstanceCredentialsProvider.

software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider

Die EMR Amazon-Instance-Profilrolle sollte die Richtlinie haben, die es dem S3A Dateisystem ermöglicht, aufzurufens3express:CreateSession. Andere Anmeldeinformationsanbieter sind ebenfalls möglich, wenn sie über die Berechtigungen für S3 Express One Zone verfügen.

fs.s3a.endpoint.region

Null

Der AWS-Region Ort, an dem Sie den Bucket erstellt haben.

Die Logik zur Regionsauflösung funktioniert nicht mit der Speicherklasse S3 Express One Zone.

fs.s3a.select.enabled

true

false

Amazon S3 select wird mit der Speicherklasse S3 Express One Zone nicht unterstützt.

fs.s3a.change.detection.mode

server

Keine

Die Änderungserkennung von S3A erfolgt, indem MD5-basierte etags geprüft werden. Die Speicherklasse S3 Express One Zone unterstützt MD5 checksums nicht.

Spark-Konfigurationen

Parameter Standardwert Empfohlener Wert Erklärung

spark.sql.sources.fastS3PartitionDiscovery.enabled

true

false

Die interne Optimierung verwendet einen API S3-Parameter, den die S3 Express One Zone-Speicherklasse nicht unterstützt.

Überlegungen

Beachten Sie Folgendes, wenn Sie Apache Spark auf Amazon EMR in die Speicherklasse S3 Express One Zone integrieren:

  • Amazon S3 Express One Zone wird mit EMR Amazon-Versionen 6.15.0 und höher unterstützt.

  • Der S3A-Anschluss ist erforderlich, um S3 Express One Zone mit Amazon EMR zu verwenden. Nur S3A verfügt über die Features und Speicherklassen, die für die Interaktion mit S3 Express One Zone erforderlich sind. Schritte zum Einrichten des Konnektors finden Sie unter Voraussetzungen.

  • Die Speicherklasse Amazon S3 Express One Zone wird nur mit Spark auf einem EMR Amazon-Cluster unterstützt, der auf Amazon läuftEC2.

  • Die Speicherklasse Amazon S3 Express One Zone unterstützt nur die SSE-S3-Verschlüsselung. Weitere Informationen finden Sie unter Serverseitige Verschlüsselung mit verwalteten Amazon S3 S3-Schlüsseln (SSE-S3).

  • Die Speicherklasse Amazon S3 Express One Zone unterstützte keine Schreibvorgänge mit dem S3A FileOutputCommitter. Schreibvorgänge mit dem S3A FileOutputCommitter in Buckets von S3 Express One Zone führen zu einem Fehler: InvalidStorageClass: The storage class you specified is not valid.

  • Die Speicherklasse Amazon S3 Express One Zone wird mit Amazon EMR Serverless oder Amazon EMR on EKS nicht unterstützt.