Amazon S3 on Outposts mit lokalem Amazon EMR on Outposts - Amazon S3 on Outposts

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.

Amazon S3 on Outposts mit lokalem Amazon EMR on Outposts

Amazon EMR ist eine verwaltete Cluster-Plattform, die den Betrieb von Big-Data-Frameworks vereinfacht, wie Apache Hadoop and Apache Spark, AWS um riesige Datenmengen zu verarbeiten und zu analysieren. Durch die Verwendung dieser Frameworks und verwandter Open-Source-Projekte können Sie Daten zu Analysezwecken und Business-Intelligence-Workloads verarbeiten. Amazon EMR unterstützt Sie auch bei der Transformation und Übertragung großer Datenmengen in und aus anderen AWS Datenspeichern und Datenbanken und unterstützt Amazon S3 on Outposts. Weitere Informationen über Amazon EMR finden Sie unter Amazon EMR in Outposts im Verwaltungshandbuch für Amazon EMR.

Für Amazon S3 on Outposts begann Amazon EMR mit der Unterstützung von Apache Hadoop S3A-Anschluss in Version 7.0.0. Frühere Versionen von Amazon EMR unterstützen kein lokales S3 on Outposts und das EMR-Dateisystem (EMRFS) wird nicht unterstützt.

Unterstützte Anwendungen

Amazon EMR mit Amazon S3 on Outposts unterstützt die folgenden Anwendungen:

  • Hadoop

  • Spark

  • Hue

  • Hive

  • Sqoop

  • Pig

  • Hudi

  • Flink

Weitere Informationen finden Sie im Handbuch zu Amazon-EMR-Versionen.

Erstellen und Konfigurieren eines Buckets von Amazon S3 on Outposts.

Amazon EMR verwendet AWS SDK für Java zusammen mit Amazon S3 on Outposts die, um Eingabe- und Ausgabedaten zu speichern. Ihre Amazon-EMR-Protokolldateien werden an einem von Ihnen ausgewählten regionalen Amazon-S3-Speicherort und nicht lokal im Outpost gespeichert. Weitere Informationen über Amazon-EMR-Protokolle finden Sie im Verwaltungshandbuch für Amazon EMR.

Für Buckets von S3 on Outposts gelten in Übereinstimmung mit den Amazon-S3- und DNS-Anforderungen bestimmte Einschränkungen und Bedingungen. Weitere Informationen finden Sie unter Erstellen eines S3-on-Outposts-Buckets.

Mit Amazon EMR Version 7.0.0 und höher können Sie Amazon EMR mit S3 on Outposts und dem S3A-Dateisystem verwenden.

Voraussetzungen

Berechtigungen für S3 on Outposts — Wenn Sie Ihr Amazon EMR-Instance-Profil erstellen, muss Ihre Rolle den AWS Identity and Access Management (IAM) -Namespace für S3 auf Outposts enthalten. S3 on Outposts hat seinen eigenen Namespace, s3-outposts*. Eine Beispielrichtlinie, die diesen Namespace verwendet, finden Sie unter Einrichten von IAM mit S3 on Outposts.

S3A-Connector — Um Ihren EMR-Cluster für den Zugriff auf Daten aus einem Amazon S3 on Outposts-Bucket zu konfigurieren, müssen Sie den Apache Hadoop S3A-Anschluss. Um den Connector zu verwenden, stellen Sie sicher, dass alle Ihre S3 das s3a Schema URIs verwenden. Wenn dies nicht der Fall ist, können Sie die Dateisystemimplementierung, die Sie für Ihren EMR-Cluster verwenden, so konfigurieren, dass Ihr S3 mit dem S3A-Connector URIs funktioniert.

Um die Dateisystemimplementierung so zu konfigurieren, dass sie mit dem S3A-Connector funktioniert, verwenden Sie die fs.file_scheme.impl und fs.AbstractFileSystem.file_scheme.impl Konfigurationseigenschaften für Ihren EMR-Cluster, wobei URIs dies dem S3-Typ file_scheme entspricht, den Sie haben. Wenn Sie das folgende Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre eigenen Informationen. Um beispielsweise die Dateisystemimplementierung für S3 zu ändern URIs , die das s3 Schema verwenden, geben Sie die folgenden Cluster-Konfigurationseigenschaften 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 S3A zu verwenden, legen Sie die Konfigurationseigenschaft fs.file_scheme.impl auf org.apache.hadoop.fs.s3a.S3AFileSystem und die Eigenschaft fs.AbstractFileSystem.file_scheme.impl auf org.apache.hadoop.fs.s3a.S3A fest.

Wenn Sie beispielsweise auf den Pfad s3a://bucket/... zugreifen, legen Sie die Eigenschaft fs.s3a.impl auf org.apache.hadoop.fs.s3a.S3AFileSystem und die Eigenschaft fs.AbstractFileSystem.s3a.impl auf org.apache.hadoop.fs.s3a.S3A fest.

Erste Schritte mit Amazon S3 on Outposts unter Verwendung von Amazon EMR

Die folgenden Themen veranschaulichen die ersten Schritte mit EMR mit Amazon S3 on Outposts unter Verwendung von Amazon EMR.

Erstellen einer Berechtigungsrichtlinie

Bevor Sie einen EMR-Cluster erstellen können, der Amazon S3 auf Outposts 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 die Berechtigung verfügen, auf den Amazon-Ressourcennamen (ARN) des Zugangspunkts von S3 on Outposts zuzugreifen. Weitere Informationen zum Erstellen von IAM-Richtlinien für S3 on Outposts finden Sie unter Einrichten von IAM mit S3 on Outposts.

Die folgende Beispielrichtlinie zeigt, wie Sie die erforderlichen Berechtigungen gewähren. Nachdem Sie die Richtlinie erstellt haben, ordnen Sie die Richtlinie der Instance-Profilrolle zu, mit der Sie Ihren EMR-Cluster erstellen, wie im Abschnitt Ihren Cluster erstellen und konfigurieren beschrieben. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre Informationen.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3-outposts:us-west-2:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/access-point-name, "Action": [ "s3-outposts:*" ] } ] }

Ihren Cluster erstellen und konfigurieren

Schließen Sie die folgenden Schritte in der Konsole ab, um einen Cluster zu erstellen, der Spark mit S3 on Outposts ausführt.

Um einen Cluster zu erstellen, der läuft Spark mit S3 auf Outposts
  1. Öffnen Sie die Amazon-EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.

  2. Wählen Sie im linken Navigationsbereich Cluster aus.

  3. Wählen Sie Cluster erstellen.

  4. Für die Amazon EMR-Version wählen Sie emr-7.0.0 oder höher.

  5. Wählen Sie als Anwendungspaket Interaktives Spark. Wählen Sie danach alle anderen unterstützten Anwendungen aus, die in Ihren Cluster integriert werden sollen.

  6. Geben Sie Ihre Konfigurationseinstellungen ein, um Amazon S3 on Outposts zu aktivieren.

    Beispiel-Konfigurationseinstellungen

    Wenn Sie die folgenden Beispiel-Konfigurationseinstellungen verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) durch Ihre eigenen Informationen.

    [ { "Classification": "core-site", "Properties": { "fs.s3a.bucket.DOC-EXAMPLE-BUCKET.accesspoint.arn": "arn:aws:s3-outposts:us-west-2:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/access-point-name" "fs.s3a.committer.name": "magic", "fs.s3a.select.enabled": "false" } }, { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64" } } ], "Properties": {} }, { "Classification": "spark-defaults", "Properties": { "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-11-amazon-corretto.x86_64", "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  7. Wählen Sie im Bereich Netzwerk eine virtuelle private Cloud (VPC) und ein Subnetz aus, die sich auf Ihrem AWS Outposts Rack befinden. Weitere Informationen über Amazon EMR in Outposts finden Sie unter EMR-Cluster auf AWS Outposts im Verwaltungshandbuch für Amazon EMR.

  8. Wählen Sie im Abschnitt EC2 Instance-Profil für Amazon EMR die IAM-Rolle aus, der die zuvor erstellte Berechtigungsrichtlinie zugeordnet ist.

  9. Konfigurieren Sie Ihre verbleibenden Cluster-Einstellungen und wählen Sie dann Create cluster (Cluster erstellen).

Konfigurationsübersicht

Die folgende Tabelle beschreibt S3A-Konfigurationen und die Werte, die Sie für ihre Parameter festlegen sollten, wenn Sie einen Cluster einrichten, der S3 on Outposts mit Amazon EMR verwendet.

Parameter Standardwert Erforderlicher Wert für S3 on Outposts Erklärung

fs.s3a.aws.credentials.provider

Wenn nicht angegeben, sucht S3A im Regions-Bucket mit dem Bucket-Namen Outposts nach S3.

Der Zugriffspunkt-ARN des Buckets von S3 on Outposts

Amazon S3 on Outposts unterstützt reine Virtual-Private-Cloud(VPC)-Zugriffspunkte als einzige Möglichkeit, auf Ihre Outposts-Buckets zuzugreifen.

fs.s3a.committer.name

file

magic

„Magic Committer“ ist der einzige Committer, der für S3 on Outposts unterstützt wird.

fs.s3a.select.enabled

TRUE

FALSE

S3 Select wird in Outposts nicht unterstützt.

JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

S3 auf Outposts auf S3A erfordert Java Version 11.

Die folgende Tabelle beschreibt Spark Konfigurationen und die Werte, die für ihre Parameter angegeben werden müssen, wenn Sie einen Cluster einrichten, der S3 auf Outposts mit Amazon EMR verwendet.

Parameter Standardwert Erforderlicher Wert für S3 on Outposts Erklärung

spark.sql.sources.fastS3PartitionDiscovery.enabled

TRUE

FALSE

S3 on Outposts unterstützt keine schnelle Partition.

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-8

/usr/lib/jvm/java-11-amazon-corretto.x86_64

Für S3 on Outposts auf S3A ist Java-Version 11 erforderlich.

Überlegungen

Beachten Sie Folgendes, wenn Sie Amazon EMR in Buckets von S3 on Outposts integrieren:

  • Amazon S3 on Outposts unterstützt die Speicherklasse Amazon S3 on Outposts.

  • Der S3A-Connector ist erforderlich, um S3 on Outposts mit Amazon EMR zu verwenden. Nur S3A verfügt über die Features, die für Interaktionen mit Buckets von S3 on Outposts erforderlich sind. Informationen zur Einrichtung des S3A-Connectors finden Sie unter Voraussetzungen.

  • Amazon S3 on Outposts unterstützt mit Amazon EMR nur die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3). Weitere Informationen finden Sie unter Datenverschlüsselung in S3 on Outposts.

  • Amazon S3 on Outposts unterstützt keine Schreibvorgänge mit dem FileOutputCommitter S3A. Schreibvorgänge mit dem S3A FileOutputCommitter auf S3 auf Outposts-Buckets führen zu dem folgenden Fehler InvalidStorageClass: Die von Ihnen angegebene Speicherklasse ist nicht gültig.

  • Amazon S3 on Outposts wird mit Amazon EMR Serverless oder Amazon EMR auf EKS nicht unterstützt.

  • Amazon-EMR-Protokolle werden an einem von Ihnen ausgewählten regionalen Amazon-S3-Speicherort und nicht lokal im Bucket von S3 on Outposts gespeichert.