Daten aus Amazon S3 uploaden - 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 aus Amazon S3 uploaden

Informationen zum Hochladen von Objekten in Amazon S3 finden Sie unter Ein Objekts zu Ihrem Bucket hinzufügen im Benutzerhandbuch zu Amazon Simple Storage Service. Weitere Informationen zur Verwendung von Amazon S3 mit Hadoop finden Sie unter http://wiki.apache.org/hadoop/AmazonS3.

Erstellen und Konfigurieren eines Amazon S3-Buckets

Amazon EMR verwendet das AWS SDK for Java zusammen mit Amazon S3, um Eingabedaten, Protokolldateien und Ausgabedaten zu speichern. Amazon S3 bezeichnet diese Speicherorte als Buckets. Buckets unterliegen bestimmten Einschränkungen und Beschränkungen, um Amazon S3 und DNS den Anforderungen zu entsprechen. Weitere Informationen finden Sie unter Bucket-Einschränkungen und -Limits im Benutzerhandbuch zu Amazon Simple Storage Service.

In diesem Abschnitt erfahren Sie, wie Sie Amazon S3 verwenden AWS Management Console , um Berechtigungen für einen Amazon S3 S3-Bucket zu erstellen und anschließend festzulegen. Sie können auch mit Amazon S3 API oder Berechtigungen für einen Amazon S3-Bucket erstellen und festlegen AWS CLI. Sie können Curl auch zusammen mit einer Änderung verwenden, um die entsprechenden Authentifizierungsparameter für Amazon S3 zu übergeben.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Anmerkung

Wenn Sie die Protokollierung für einen Bucket aktivieren, werden nur Bucket-Zugriffsprotokolle aktiviert, keine EMR Amazon-Cluster-Protokolle.

Während der Bucket-Erstellung oder danach können Sie die entsprechenden Berechtigungen für den Zugriff auf den Bucket festlegen, abhängig von Ihrer Anwendung. Hierbei sollten Sie sich selbst (als Eigentümer) Lese- und Schreibzugriff und anderen autorisierten Benutzern Lesezugriff erteilen.

Erforderliche Amazon-S3-Buckets müssen vorhanden sein, bevor Sie einen Cluster erstellen können. Sie müssen alle erforderlichen Skripts und Daten auf Amazon S3 hochladen, auf die im Cluster verwiesen wird. In der folgenden Tabelle werden Beispiele für Speicherorte für Daten, Skripts und Protokolldateien beschrieben.

Konfigurieren von mehrteiligen Uploads für Amazon S3

Amazon EMR unterstützt den mehrteiligen Amazon S3-Upload über das AWS SDK für Java. Mit dem mehrteiligen Upload können Sie ein einzelnes Objekt in mehreren Teilen hochladen. Sie können diese Objektteile unabhängig und in beliebiger Reihenfolge hochladen. Wenn die Übertragung eines Teils fehlschlägt, können Sie das Teil erneut übertragen, ohne dass dies Auswirkungen auf andere Teile hat. Nachdem alle Teile Ihres Objekts hochgeladen sind, fügt Amazon S3 diese Teile zusammen und erstellt das Objekt.

Weitere Informationen finden Sie unter Mehrteiliger Upload – Übersicht im Benutzerhandbuch zu Amazon Simple Storage Service.

Darüber hinaus EMR bietet Amazon Funktionen, mit denen Sie die Bereinigung fehlgeschlagener mehrteiliger Upload-Teile genauer steuern können.

In der folgenden Tabelle werden die EMR Amazon-Konfigurationseigenschaften für den mehrteiligen Upload beschrieben. Sie können diese mit der Konfigurationsklassifizierung core-site konfigurieren. Weitere Informationen finden Sie unter Anwendungen konfigurieren im EMRAmazon-Versionshandbuch.

Name des Konfigurationsparameters Standardwert Beschreibung
fs.s3n.multipart.uploads.enabled true Dieser Boolesche Typ gibt an, ob mehrteilige Uploads aktiviert werden sollen. Wenn die EMRFS konsistente Ansicht aktiviert ist, sind mehrteilige Uploads standardmäßig aktiviert und die Einstellung dieses Werts auf false wird ignoriert.
fs.s3n.multipart.uploads.split.size 134217728

Gibt die maximale Größe eines Teils in Byte an, bevor ein neuer Bauteil-Upload EMRFS gestartet wird, wenn mehrteilige Uploads aktiviert sind. Der Mindestwert ist 5242880 (5 MB). Wenn ein kleinerer Wert angegeben wird, wird 5242880 verwendet. Der Höchstwert ist 5368709120 (5 GB). Wenn ein größerer Wert angegeben wird, wird 5368709120 verwendet.

Wenn die EMRFS clientseitige Verschlüsselung deaktiviert ist und der Amazon S3 Optimized Committer ebenfalls deaktiviert ist, steuert dieser Wert auch die maximale Größe, die eine Datendatei vergrößern kann, bis mehrteilige Uploads anstelle einer PutObject Anfrage zum Hochladen der Datei EMRFS verwendet werden. Weitere Informationen finden Sie unter

fs.s3n.ssl.enabled true Dieser Boolesche Typ gibt an, ob HTTP oder HTTPS verwendet werden soll.
fs.s3.buckets.create.enabled false Ein boolescher Typ, der angibt, ob ein Bucket erstellt werden soll, wenn er nicht vorhanden ist. Wenn Sie dies auf false festlegen, wird eine Ausnahme für CreateBucket-Operationen ausgelöst.
fs.s3.multipart.clean.enabled false Ein boolescher Typ, der angibt, ob unvollständige mehrteilige Uploads regelmäßig im Hintergrund bereinigt werden sollen.
fs.s3.multipart.clean.age.threshold 604800 Ein long-Typ, der das Mindestalter eines mehrteiligen Uploads in Sekunden angibt, bevor er zur Bereinigung vorgesehen wird. Die Standardeinstellung ist eine Woche.
fs.s3.multipart.clean.jitter.max 10000 Eine integer-Typ, der den maximalen Betrag für zufällige Jitter-Verzögerungen in Sekunden angibt, die der festen Verzögerung von 15 Minuten hinzugefügt werden, bevor die nächste Bereinigung geplant wird.

So deaktivieren Sie mehrteilige Uploads

Console
Um mehrteilige Uploads mit der Konsole zu deaktivieren
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die EMR Amazon-Konsole unter https://console.aws.amazon.com/emr.

  2. Wählen Sie EC2 im linken Navigationsbereich unter EMRon die Option Clusters und anschließend Create cluster aus.

  3. Geben Sie in Softwareeinstellungen bearbeiten die folgende Konfiguration ein: classification=core-site,properties=[fs.s3n.multipart.uploads.enabled=false].

  4. Wählen Sie alle anderen Optionen aus, die für Ihren Cluster gelten.

  5. Um Ihren Cluster jetzt zu starten, wählen Sie Cluster erstellen aus.

CLI
Um den mehrteiligen Upload zu deaktivieren, verwenden Sie den AWS CLI

In diesem Verfahren wird erläutert, wie Sie mehrteilige Uploads mithilfe der AWS CLI deaktivieren. Um mehrteilige Uploads zu deaktivieren, geben Sie den Befehl create-cluster mit dem Parameter --bootstrap-actions ein.

  1. Erstellen Sie eine Datei mit dem Namen myConfig.json und dem folgenden Inhalt und speichern Sie sie in dem Verzeichnis, in dem Sie den Befehl ausführen:

    [ { "Classification": "core-site", "Properties": { "fs.s3n.multipart.uploads.enabled": "false" } } ]
  2. Geben Sie den folgenden Befehl ein und ersetzen Sie myKey mit dem Namen Ihres EC2 key pair.

    Anmerkung

    Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

    aws emr create-cluster --name "Test cluster" \ --release-label emr-7.2.0 --applications Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --configurations file://myConfig.json
API
Um den mehrteiligen Upload zu deaktivieren, verwenden Sie API

Bewährte Methoden

Im Folgenden finden Sie Empfehlungen für die Verwendung von Amazon S3 S3-Buckets mit EMR Clustern.

Aktivieren von Versioning

Versioning ist eine empfohlene Konfiguration für Ihre Amazon S3-Buckets. Durch das Aktivieren von Versioning stellen Sie sicher, dass Sie auch versehentlich gelöschte oder überschriebene Daten wiederhergestellt werden können. Weitere Informationen finden Sie unter Verwenden von Versionsverwaltung im Benutzerhandbuch für Amazon Simple Storage Service.

Bereinigung mehrteiliger Uploads fehlgeschlagen

EMRCluster-Komponenten verwenden standardmäßig mehrteilige Uploads über Java mit Amazon S3APIs, um Protokolldateien zu schreiben und Daten in Amazon S3 auszugeben. AWS SDK Informationen zum Ändern der Eigenschaften dieser Konfiguration mithilfe von Amazon EMR finden Sie unterKonfigurieren von mehrteiligen Uploads für Amazon S3. Es kann vorkommen, dass das Hochladen einer großen Datei zu einem unvollständigen mehrteiligen Upload in Amazon S3 führt. Wenn ein mehrteiliger Upload nicht erfolgreich abgeschlossen werden kann, belegt der laufende Vorgang Ihren Bucket und es fallen Speichergebühren an. Wir empfehlen die folgenden Optionen, um eine übermäßige Dateispeicherung zu vermeiden:

  • Verwenden Sie für Buckets, die Sie mit Amazon verwendenEMR, eine Lebenszyklus-Konfigurationsregel in Amazon S3, um unvollständige mehrteilige Uploads drei Tage nach dem Startdatum des Uploads zu entfernen. Mit Lebenszyklus-Konfigurationsregeln können Sie Speicherklasse und Lebensdauer von Objekten steuern. Weitere Informationen finden Sie unter Verwaltung des Objektlebenszyklus und Abbrechen unvollständiger mehrteiliger Uploads mit einer Bucket-Lebenszyklusrichtlinie.

  • Aktivieren Sie EMR die mehrteilige Bereinigungsfunktion von Amazon, indem Sie andere true Bereinigungsparameter einstellen fs.s3.multipart.clean.enabled und anpassen. Diese Funktion ist bei einem hohen Volumen, einem großem Umfang und Clustern mit begrenzte Betriebszeit nützlich. In diesem Fall ist der DaysAfterIntitiation-Parameter einer Lebenszyklus-Konfigurationsregel möglicherweise zu lang, selbst wenn er auf das Minimum eingestellt ist, was zu Spitzen im Amazon-S3-Speicher führt. EMRDie mehrteilige Bereinigung von Amazon ermöglicht eine genauere Steuerung. Weitere Informationen finden Sie unter Konfigurieren von mehrteiligen Uploads für Amazon S3.

Versionsmarkierungen verwalten

Wir empfehlen Ihnen, eine Lebenszyklus-Konfigurationsregel in Amazon S3 zu aktivieren, um Markierungen zum Löschen abgelaufener Objekte für versionierte Buckets zu entfernen, die Sie mit Amazon verwenden. EMR Beim Löschen eines Objekts in einem versionierten Bucket wird eine Löschmarkierung erstellt. Wenn anschließend alle vorherigen Versionen des Objekts ablaufen, verbleibt eine Löschmarkierung für abgelaufene Objekte im Bucket. Für Löschmarkierungen fallen zwar keine Gebühren an, aber das Entfernen abgelaufener Markierungen kann die Leistung von LIST Anfragen verbessern. Weitere Informationen finden Sie unter Lebenszykluskonfiguration für einen Bucket mit Versionsverwaltung im Benutzerhandbuch zu Amazon Simple Storage Service.

Bewährte Methoden zur Leistungssteigerung

Abhängig von Ihren Workloads können bestimmte Arten der Nutzung von EMR Clustern und Anwendungen auf diesen Clustern zu einer hohen Anzahl von Anfragen an einen Bucket führen. Weitere Informationen finden Sie unter Erwägungen zur Anforderungsrate und Leistung im Benutzerhandbuch zu Amazon Simple Storage Service.