Mit Storage- und Dateisystemen arbeiten - 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.

Mit Storage- und Dateisystemen arbeiten

Amazon EMR und Hadoop bieten eine Vielzahl von Dateisystemen an, die Sie bei der Verarbeitung von Cluster-Schritten verwenden können. Sie geben über das Präfix des URI an, welches Dateisystem Sie nutzen möchten. Beispielsweise referenziert s3://DOC-EXAMPLE-BUCKET1/path einen Amazon-S3-Bucket mittels EMRFS. In der folgenden Tabelle werden die verfügbaren Dateisysteme sowie Empfehlungen zu ihrer Verwendung aufgeführt.

Amazon EMR und Hadoop verwenden bei der Ausführung eines Clusters normalerweise zwei oder mehr der folgenden Dateisysteme. HDFS und EMRFS sind zwei der wichtigsten mit Amazon EMR verwendeten Dateisysteme.

Wichtig

Ab Amazon EMR Version 5.22.0 verwendet Amazon EMR AWS Signature Version 4 ausschließlich zur Authentifizierung von Anfragen an Amazon S3. Frühere Amazon EMR-Versionen verwenden in einigen Fällen AWS Signature Version 2, sofern in den Versionshinweisen nicht angegeben ist, dass ausschließlich Signature Version 4 verwendet wird. Weitere Informationen finden Sie unter Authentifizieren von Anfragen (AWS Signature Version 4) und Authentifizieren von Anfragen (AWS Signature Version 2) im Amazon Simple Storage Service Developer Guide.

Dateisystem Präfix Beschreibung
HDFS hdfs:// (oder ohne Präfix)

HDFS ist ein verteiltes, skalierbares und portierbares Dateisystem für Hadoop. Ein Vorteil von HDFS ist, dass die Daten für die Hadoop-Cluster-Knoten zur Verwaltung der Cluster und die Hadoop-Cluster-Knoten für die Verwaltung der einzelnen Schritte bekannt sind. Weitere Informationen finden Sie in der Hadoop-Dokumentation.

HDFS wird von den Master- und Core-Knoten verwendet. Ein Vorteil ist, dass es schneller ist. Ein Nachteil ist, dass es ein flüchtiger Speicher ist. Dieser wird beim Beenden des Clusters verworfen. Es eignet sich am besten für die Zwischenspeicherung der Ergebnisse von zwischengeschalteten Auftragsverlaufsschritten.

EMRFS s3://

EMRFS ist eine Implementierung des Hadoop-Dateisystems, die zum direkten Lesen und Schreiben regulärer Dateien aus Amazon EMR zu Amazon S3 verwendet wird. EMRFS bietet den Komfort, persistente Daten in Amazon S3 zur Verwendung mit Hadoop zu speichern und bietet gleichzeitig Funktionen wie serverseitige Amazon S3 S3-Verschlüsselung, read-after-write Konsistenz und Listenkonsistenz.

Anmerkung

Zuvor verwendete Amazon EMR die Dateisysteme s3n und s3a Dies funktioniert zwar noch, doch wir empfehlen, dass Sie das URI-Schema s3 verwenden. Es bietet mehr Leistung, Sicherheit und Zuverlässigkeit.

Lokales Dateisystem

Das lokale Dateisystem bezieht sich auf einen lokal verbundenen Datenträger. Wenn Sie einen Hadoop-Cluster erstellen, werden die einzelnen Knoten aus einer EC2-Instance erstellt, die einen vorkonfigurierten Block mit bereits zugeordnetem Festplattenspeicher enthält, einen sogenannten Instance-Speicher. Die Daten auf den Instance-Speicher-Volumes bleiben nur während des Lebenszyklus der EC2-Instance erhalten. Instance-Speicher-Volumen eignen sich perfekt für die Speicherung von temporärer Daten, die sich ständig ändern (z. B. Puffer, Caches, Arbeitsdaten und andere temporäre Inhalte). Weitere Informationen finden Sie unter Amazon-EC2-Instance Speicher.

Das lokale Dateisystem wird von HDFS verwendet, aber Python wird auch vom lokalen Dateisystem aus ausgeführt, und Sie können wählen, ob Sie zusätzliche Anwendungsdateien auf Instance-Speicher-Volumes speichern möchten.

Amazon-S3-Block-Dateisystem (veraltet) s3bfs://

Das Amazon-S3-Block-Dateisystem ist ein veraltetes Dateispeichersystem. Es wird ausdrücklich von der Verwendung dieses Systems abgeraten.

Wichtig

Wir empfehlen, dass Sie dieses Dateisystem nicht verwenden. Es kann dazu führen, dass der Cluster ausfällt. Möglicherweise ist es jedoch für ältere Anwendungen erforderlich.

Zugriff auf Dateisysteme

Sie geben über das Präfix des URI (Uniform Resource Identifier) für den Zugriff auf die Daten an, welches Dateisystem Sie nutzen möchten. Die folgenden Verfahren veranschaulichen den Zugriff auf verschiedene Dateisystemarten.

So greifen Sie auf ein lokales HDFS zu
  • Geben Sie in hdfs:///-Präfix im URI an. Amazon EMR löst Pfade ohne Präfix im URI für das lokale HDFS auf. Beispielsweise führen die folgenden URIs zum selben Speicherort in HDFS.

    hdfs:///path-to-data /path-to-data
So greifen Sie auf ein Remote-HDFS zu
  • Fügen Sie, wie in den folgenden Beispielen dargestellt, die IP-Adresse des Master-Knotens zum URI hinzu.

    hdfs://master-ip-address/path-to-data master-ip-address/path-to-data
So greifen Sie auf Amazon S3 zu
  • Verwenden Sie den s3://-Präfix.

    s3://bucket-name/path-to-file-in-bucket
So greifen Sie auf das Amazon-S3-Block-Dateisystem zu
  • Verwenden Sie dieses Dateisystem nur für ältere Anwendungen, die das Amazon-S3-Block-Dateisystem benötigen. Für den Zugriff auf Daten mit diesem Dateisystem verwenden Sie das s3bfs://-Präfix im URI.

    Das Amazon-S3-Block-Dateisystem ist ein veraltetes Dateisystem, das für Uploads zu Amazon S3 mit einer Größe von mehr als 5 GB verwendet wurde. Mit der mehrteiligen Upload-Funktion, die Amazon EMR über das AWS Java SDK bereitstellt, können Sie Dateien mit einer Größe von bis zu 5 TB in das native Amazon S3 S3-Dateisystem hochladen, und das Amazon S3 S3-Blockdateisystem ist veraltet.

    Warnung

    Da dieses veraltete Dateisystem zu Beschädigungen führen kann, sollten Sie es vermeiden. Verwenden Sie stattdessen EMRFS.

    s3bfs://bucket-name/path-to-file-in-bucket