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 die Ausführung von Big-Data-Frameworks wie etwa Apache Hadoop und Apache Spark in AWS vereinfacht, 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 hilft Ihnen auch, große Datenmengen zu transformieren, sie in oder aus andere(n) AWS-Datenspeicher(n) oder Datenbanken zu verschieben 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 unterstützt Amazon EMR seit Version 7.0.0 den Apache Hadoop-S3A-Connector. 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 for Java mit Amazon S3 on Outposts zum Speichern von Eingabedaten und Ausgabedaten. 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: Beim Erstellen Ihres Instance-Profils für Amazon EMR muss Ihre Rolle den AWS Identity and Access Management(IAM)-Namespace für S3 on 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: Wenn Sie Ihren EMR-Cluster für den Zugriff auf Daten aus einem Bucket von Amazon S3 on Outposts konfigurieren wollen, müssen Sie dazu den S3A-Connector Apache Hadoop verwenden. Um den Connector zu verwenden, stellen Sie sicher, dass alle Ihre S3-URIs das s3a-Schema verwenden. Ist dies nicht der Fall, können Sie die Dateisystemimplementierung, die Sie für Ihren EMR-Cluster verwenden, so konfigurieren, dass Ihre S3-URIs mit dem S3A-Connector funktionieren.

Um die Dateisystemimplementierung so zu konfigurieren, dass sie mit dem S3A-Connector funktioniert, verwenden Sie für Ihren EMR-Cluster die Konfigurationseigenschaften fs.file_scheme.impl und fs.AbstractFileSystem.file_scheme.impl, wobei file_scheme dem S3-URI-Typ 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-URIs zu ändern, 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 on Outposts verwendet, müssen Sie eine IAM-Richtlinie erstellen, die an das Amazon-EC2-Instance-Profil für den Cluster angefügt 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.

So erstellen Sie einen Cluster, der Spark mit S3 on Outposts ausführt
  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. Wählen Sie als Amazon EMR-Version emr-7.0.0 oder später.

  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 Abschnitt Netzwerk eine Virtual 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, der die zuvor erstellte Berechtigungsrichtlinie angehängt 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

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

Die folgende Tabelle beschreibt Spark-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

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 S3A FileOutputCommitter. Schreibvorgänge mit dem S3A FileOutputCommitter auf Buckets von S3 on Outposts führen zu folgendem Fehler: InvalidStorageClass: Die 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.