

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.

# Consistent view
<a name="emr-plan-consistent-view"></a>

**Warnung**  
Am 1. Juni 2023 wird die Standardunterstützung für zukünftige Amazon-EMR-Versionen für EMRFS konsistente Ansicht eingestellt. Die EMRFS-konsistente Ansicht wird auch weiterhin für bestehende Versionen funktionieren.

Mit der Veröffentlichung von Amazon S3 Strong read-after-write Consistency am 1. Dezember 2020 müssen Sie EMRFS Consistent View (EMRFS CV) nicht mehr für Ihre Amazon EMR-Cluster verwenden. EMRFS CV ist eine optionale Funktion, mit der Amazon EMR-Cluster Amazon S3 S3-Objekte auf Liste und read-after-write Konsistenz überprüfen können. Wenn Sie einen Cluster erstellen und EMRFS CV aktiviert ist, erstellt Amazon EMR eine Amazon DynamoDB DynamoDB-Datenbank zum Speichern von Objektmetadaten, die zur Nachverfolgung der Liste und read-after-write Konsistenz von S3-Objekten verwendet werden. Sie können jetzt EMRFS CV deaktivieren und die DynamoDB-Datenbank löschen, sodass Ihnen keine zusätzlichen Kosten entstehen. In den folgenden Verfahren wird erklärt, wie Sie das CV-Feature prüfen, ausschalten und die DynamoDB-Datenbank löschen, die das Feature verwendet.<a name="enable-emr-fs-console"></a>

**Um zu überprüfen, ob Sie das EMRFS-CV-Feature verwenden**

1. Navigieren Sie zur Registerkarte **Konfiguration**. Wenn Ihr Cluster die folgende Konfiguration hat, verwendet er EMRFS CV.

   ```
   Classification=emrfs-site,Property=fs.s3.consistent,Value=true
   ```

1. [Verwenden Sie alternativ den, um Ihren Cluster AWS CLI mit der API zu beschreiben. `describe-cluster`](https://docs.aws.amazon.com/cli/latest/reference/emr/describe-cluster.html) Wenn die Ausgabe `fs.s3.consistent: true` enthält, verwendet Ihr Cluster EMRFS CV.

**So deaktivieren Sie EMRFS CV auf Ihren Amazon-EMR-Clustern**

Verwenden Sie eine der folgenden drei Optionen, um das EMRFS-CV-Feature zu deaktivieren. Sie sollten diese Optionen in Ihrer Testumgebung testen, bevor Sie sie auf Ihre Produktionsumgebungen anwenden.

1. 

**Um Ihren vorhandenen Cluster zu beenden und einen neuen Cluster ohne EMRFS-CV-Optionen zu starten.**

   1. Bevor Sie Ihren Cluster beenden, stellen Sie sicher, dass Sie Ihre Daten sichern und Ihre Benutzer benachrichtigen.

   1. Befolgen Sie die Anweisungen unter [Einen Cluster beenden](https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminateJobFlow.html), um den Cluster zu beenden.

   1. Wenn Sie die Amazon-EMR-Konsole verwenden, um einen neuen Cluster zu erstellen, navigieren Sie zu **Erweiterte Optionen**. Deaktivieren Sie im Abschnitt **Softwareeinstellungen bearbeiten** die Option zum Aktivieren von EMRFS CV. Wenn das Kontrollkästchen für die **konsistente EMRFS-Ansicht** verfügbar ist, lassen Sie es deaktiviert.

   1. Wenn Sie AWS CLI früher einen neuen Cluster mit der [`create-cluster`API](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) erstellen, verwenden Sie nicht die `--emrfs` Option, die EMRFS CV aktiviert.

   1. Wenn Sie ein SDK verwenden oder einen neuen Cluster erstellen CloudFormation möchten, verwenden Sie keine der Konfigurationen, die unter [Konsistente Ansicht konfigurieren](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html) aufgeführt sind.

1. 

**So klonen Sie einen Cluster und entfernen EMRFS CV**

   1. Klicken Sie in der Amazon-EMR-Konsole auf den Cluster, der EMRFS-CV verwendet.

   1. Wählen Sie oben auf der Seite **Cluster Details (Clusterdetails)** auf **Clone (Klonen)**.

   1. Wählen Sie **Zurück** und navigieren Sie zu **Schritt 1: Software und Schritte**.

   1. Entfernen Sie **unter Softwareeinstellungen bearbeiten** die Datei EMRFS CV. Löschen Sie unter **Konfiguration bearbeiten** die folgenden Konfigurationen in der `emrfs-site`-Klassifizierung. Wenn Sie JSON aus einem S3-Bucket laden, müssen Sie Ihr S3-Objekt ändern.

      ```
      [
      	{"classification":
      		"emrfs-site",
      		"properties": {
      			"fs.s3.consistent.retryPeriodSeconds":"10",
      			"fs.s3.consistent":"true",
      			"fs.s3.consistent.retryCount":"5",
      			"fs.s3.consistent.metadata.tableName":"EmrFSMetadata"
      		}
      	}
      ]
      ```

1. 

**Um EMRFS CV aus einem Cluster zu entfernen, der Instance-Gruppen verwendet**

   1. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob ein einzelner EMR-Cluster die DynamoDB-Tabelle verwendet, die mit EMRFS CV verknüpft ist, oder ob mehrere Cluster die Tabelle gemeinsam nutzen. Der Tabellenname ist in `fs.s3.consistent.metadata.tableName` angegeben, wie unter [Konsistente Ansicht konfigurieren beschrieben.](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html) Der von EMRFS CV verwendete Standardtabellenname ist `EmrFSMetadata`.

      ```
      aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
      ```

   1. Wenn Ihr Cluster Ihre DynamoDB-Datenbank nicht mit einem anderen Cluster teilt, verwenden Sie den folgenden Befehl, um den Cluster neu zu konfigurieren und EMRFS CV zu deaktivieren. Weitere Informationen finden Sie unter [Neu-Konfiguration für eine Instance-Gruppe in einem aktiven Cluster](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

      ```
      aws emr modify-instance-groups --cli-input-json file://disable-emrfs-1.json
      ```

      Mit diesem Befehl wird die Datei geöffnet, die Sie ändern möchten. Ändern Sie die Datei mit den folgenden Konfigurationen.

      ```
      {
      	"ClusterId": "j-xxxx",
      	"InstanceGroups": [
      		{
      			"InstanceGroupId": "ig-xxxx",
      			"Configurations": [
      				{
      					"Classification": "emrfs-site",
      					"Properties": {
      						"fs.s3.consistent": "false"
      					},
      					"Configurations": []
      				}
      			]
      		}
      	]
      }
      ```

   1. Wenn Ihr Cluster die DynamoDB-Tabelle mit einem anderen Cluster gemeinsam nutzt, deaktivieren Sie EMRFS CV auf allen Clustern zu einem Zeitpunkt, zu dem keine Cluster Objekte am gemeinsam genutzten S3-Standort ändern.

**Löschen Sie Amazon-DynamoDB-Ressourcen, die mit EMRFS CV verknüpft sind, wie folgt**

Nachdem Sie EMRFS CV aus Ihren Amazon-EMR-Clustern entfernt haben, löschen Sie die DynamoDB-Ressourcen, die mit EMRFS CV verknüpft sind. Solange Sie dies nicht tun, fallen für Sie weiterhin DynamoDB-Gebühren im Zusammenhang mit EMRFS CV an.

1. Überprüfen Sie die CloudWatch Metriken für Ihre DynamoDB-Tabelle und stellen Sie sicher, dass die Tabelle von keinem Cluster verwendet wird.

1. Löschen Sie die DynamoDB-Tabelle.

   ```
   aws dynamodb delete-table --table-name <your-table-name>
   ```

**Löschen Sie Amazon-SQS-Ressourcen, die mit EMRFS CV verknüpft sind, wie folgt**

1. Wenn Sie Ihren Cluster so konfiguriert haben, dass Inkonsistenzbenachrichtigungen an Amazon SQS gesendet werden, können Sie alle SQS-Warteschlangen löschen.

1. Suchen Sie den in `fs.s3.consistent.notification.SQS.queueName` angegebenen Amazon-SQS-Warteschlangennamen, wie unter [Konsistente Ansicht konfigurieren](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-configure-consistent-view.html) beschrieben. Das Standardformat für Warteschlangennamen ist `EMRFS-Inconsistency-<j-cluster ID>`.

   ```
   aws sqs list-queues | grep ‘EMRFS-Inconsistency’
   aws sqs delete-queue –queue-url <your-queue-url>
   ```

**So beenden Sie die Verwendung der EMRFS-CLI**
+ Die [EMRFS-CLI verwaltet die Metadaten, die EMRFS CV](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emrfs-cli-reference.html) generiert. Da die Standardunterstützung für EMRFS CV in zukünftigen Versionen von Amazon EMR ausläuft, wird auch die Unterstützung für die EMRFS-CLI eingestellt. 

**Topics**
+ [Die konsistente Ansicht aktivieren](enable-consistent-view.md)
+ [Verstehen, wie mit der konsistenten Ansicht von EMRFS Objekte in Amazon S3 nachverfolgt werden](emrfs-files-tracked.md)
+ [Logik für Wiederholversuche](emrfs-retry-logic.md)
+ [Konsistente Ansicht der Metadaten in EMRFS](emrfs-metadata.md)
+ [Konsistenzbenachrichtigungen für CloudWatch und Amazon SQS konfigurieren](emrfs-configure-sqs-cw.md)
+ [Konfigurieren der konsistenten Ansicht](emrfs-configure-consistent-view.md)
+ [Die EMRFS-CLI-Befehlsreferenz](emrfs-cli-reference.md)

# Die konsistente Ansicht aktivieren
<a name="enable-consistent-view"></a>

Sie können die serverseitige Amazon S3 S3-Verschlüsselung oder die konsistente Ansicht für EMRFS mithilfe der AWS-Managementkonsole Konfigurationsklassifizierung AWS CLI, oder aktivieren. `emrfs-site`<a name="enable-emr-fs-console"></a>

**So konfigurieren Sie die konsistente Ansicht mit der Konsole**

1. Navigieren Sie zur neuen Amazon-EMR-Konsole und wählen Sie in der Seitennavigation die Option **Zur alten Konsole wechseln** aus. Weitere Informationen darüber, was Sie erwartet, wenn Sie zur alten Konsole wechseln, finden Sie unter [Verwenden der alten Konsole](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

1. Wählen Sie **Create Cluster (Cluster erstellen)** und **Go to advanced options (Zu erweiterten Optionen)** aus.

1. Wählen Sie in **Step 1: Software and Steps (Schritt 1: Software und Schritte)** und **Step 2: Hardware (Schritt 2: Hardware)** Einstellungen aus. 

1. Wählen Sie in **Step 3: General Cluster Settings (Schritt 3: Cluster-Standardeinstellungen)** in **Additional Options (Zusätzliche Optionen)** die Option **EMRFS consistent view (EMRFS-konsistente Ansicht)** aus.

1. Geben Sie in **EMRFS Metadata store (EMRFS-Metadatenspeicher)** den Namen Ihres Metadatenspeichers ein. Der Standardwert ist **EmrFSMetadata**. Wenn die FSMetadata Emr-Tabelle nicht existiert, wird sie in DynamoDB für Sie erstellt.
**Anmerkung**  
Amazon EMR entfernt die EMRFS-Metadaten nicht automatisch aus DynamoDB, wenn der Cluster beendet wird.

1. Geben Sie in **Number of retries (Anzahl der Wiederholungen)** einen Ganzzahlwert ein. Wenn eine Inkonsistenz festgestellt wird, versucht EMRFS, Amazon S3 so oft wie möglich aufzurufen. Der Standardwert ist **5**. 

1. Geben Sie in **Retry period (in seconds) (Wiederholungszeitraum (in Sekunden))** einen Ganzzahlwert ein. Dies ist die Zeitspanne, die EMRFS zwischen Wiederholungsversuchen wartet. Der Standardwert ist **10**.
**Anmerkung**  
Bei nachfolgenden Wiederholversuchen wird ein exponentielles Backoff verwendet. 

**Um einen Cluster mit aktivierter konsistenter Ansicht zu starten, verwenden Sie AWS CLI**

Wir empfehlen Ihnen, die aktuelle Version von zu installieren AWS CLI. Informationen zum Herunterladen der neuesten Version finden Sie unter [https://aws.amazon.com/cli/](https://aws.amazon.com/cli/).
+ 
**Anmerkung**  
Linux-Zeilenfortsetzungszeichen (\$1) 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 (^).

  ```
  1. aws emr create-cluster --instance-type m5.xlarge --instance-count 3 --emrfs Consistent=true \
  2. --release-label emr-7.12.0 --ec2-attributes KeyName=myKey
  ```

**Um zu überprüfen, ob die konsistente Ansicht aktiviert ist, verwenden Sie AWS-Managementkonsole**
+ Um in der Konsole zu überprüfen, ob die konsistente Ansicht aktiviert ist, navigieren Sie zu **Cluster List (Cluster-Liste)** und wählen den Namen Ihres Clusters aus, um die **Cluster Details (Cluster-Details)** anzuzeigen. Das Feld "EMRFS consistent view" hat den Wert `Enabled` oder `Disabled`.

**So prüfen Sie durch Untersuchen der Datei `emrfs-site.xml`, ob die konsistente Ansicht aktiviert ist**
+ Sie können überprüfen, ob die Konsistenz aktiviert ist, indem Sie die Konfigurationsdatei `emrfs-site.xml` auf dem Master-Knoten des Clusters prüfen. Wenn der boolesche Wert für `fs.s3.consistent` auf `true` festgelegt ist, ist die konsistente Ansicht für Dateisystem-Operationen, an denen Amazon S3 beteiligt ist, aktiviert.

# Verstehen, wie mit der konsistenten Ansicht von EMRFS Objekte in Amazon S3 nachverfolgt werden
<a name="emrfs-files-tracked"></a>

EMRFS erstellt eine konsistente Ansicht der Objekte in Amazon S3, indem es Informationen über diese Objekte zu den EMRFS-Metadaten hinzufügt. EMRFS fügt diese Listen seinen Metadaten hinzu, wenn Folgendes zutrifft:
+  Ein Objekt wird von EMRFS im Laufe eines Amazon-EMR-Auftrags geschrieben.
+  Ein Objekt wird unter Verwendung der EMRFS-CLI mit EMRFS-Metadaten synchronisiert bzw. in die EMRFS-Metadaten importiert.

Objekte, die von EMRFS gelesen werden, werden nicht automatisch zu den Metadaten hinzugefügt. Wenn EMRFS ein Objekt löscht, verbleibt eine Liste in den Metadaten mit dem Status „Gelöscht“, bis diese Auflistung über die EMRFS-CLI bereinigt wird. Weitere Informationen zur CLI finden Sie unter [Die EMRFS-CLI-Befehlsreferenz](emrfs-cli-reference.md). Weitere Informationen zum Bereinigen von Listen in den EMRFS-Metadaten finden Sie unter [Konsistente Ansicht der Metadaten in EMRFS](emrfs-metadata.md).

Für jede Amazon-S3-Operation überprüft EMRFS die Metadaten auf Informationen über die Objekte in der konsistenten Ansicht. Wenn EMRFS feststellt, dass Amazon S3 während einer dieser Operationen inkonsistent ist, wird die Operation entsprechend den in den `emrfs-site`-Konfigurationseigenschaften definierten Parametern wiederholt. Nachdem EMRFS alle Wiederholversuche ausgeschöpft hat, wirft es entweder eine `ConsistencyException` auf, oder es protokolliert die Ausnahme und setzt den Workflow fort. Weitere Informationen zur Wiederholungslogik finden Sie unter [Logik für Wiederholversuche](emrfs-retry-logic.md). Sie finden die `ConsistencyExceptions` in Ihren Protokollen, zum Beispiel:
+  listStatus: Kein Amazon S3 Objekt für Metadatenelement `/S3_bucket/dir/object`
+  getFileStatus: Der Schlüssel `dir/file` ist in den Metadaten vorhanden, aber nicht in Amazon S3

Wenn Sie ein mit der konsistenten Ansicht von EMRFS nachverfolgtes Objekt direkt in Amazon S3 löschen, behandelt EMRFS dieses Objekt als inkonsistent, da es weiterhin in den Metadaten als in Amazon S3 vorhanden angezeigt wird. Wenn Ihre Metadaten nicht mehr mit den Objekten synchronisiert sind, die EMRFS in Amazon S3 nachverfolgt, können Sie den Unterbefehl **sync** der EMRFS-CLI ausführen, um die Metadaten zurückzusetzen, sodass sie den aktuellen Stand in Amazon S3 reflektieren. Um Abweichungen zwischen Metadaten und Amazon S3 zu entdecken, verwenden Sie den Befehl **diff**. EMRFS verfügt nur über eine konsistente Ansicht der Objekte, auf die in den Metadaten verwiesen wird; im gleichen Amazon-S3-Pfad können andere Objekte vorhanden sein, die nicht verfolgt werden. Wenn EMRFS die Objekte in einem Amazon-S3-Pfad auflistet, wird die Gesamtmenge der Objekte zurückgegeben, die in den Metadaten nachverfolgt werden und im Amazon-S3-Pfad vorhanden sind.

# Logik für Wiederholversuche
<a name="emrfs-retry-logic"></a>

EMRFS versucht mit einer bestimmten Anzahl an Wiederholversuchen, die Listenkonsistenz für Objekte zu überprüfen, die in den Metadaten verfolgt werden. Der Standardwert ist 5. Wenn die Anzahl der Wiederholversuche überschritten wird, gibt der ursprüngliche Auftrag einen Fehler zurück, es sei denn, `fs.s3.consistent.throwExceptionOnInconsistency` ist auf `false` festgelegt, sodass die Objekte lediglich protokolliert werden, die als inkonsistent verfolgt wurden. EMRFS verwendet standardmäßig eine Wiederholungsrichtlinie mit exponentiellem Backoff, Sie können jedoch auch eine feste Richtlinie verwenden. Möglicherweise möchten die Benutzer ihre Versuche für einen bestimmten Zeitraum wiederholen, bevor sie den restlichen Auftrag ausführen, ohne dass eine Ausnahme ausgelöst wird. Sie können dies erreichen, indem sie `fs.s3.consistent.throwExceptionOnInconsistency` auf `false`, `fs.s3.consistent.retryPolicyType` auf `fixed` und `fs.s3.consistent.retryPeriodSeconds` auf den gewünschten Wert festlegen. Im folgenden Beispiel wird ein Cluster mit aktivierter Konsistenz erstellt. Dabei werden Inkonsistenzen protokolliert und es wird ein festes Wiederholungsintervall von 10 Sekunden festgelegt:

**Example Festlegen des Wiederholungszeitraums auf einen festen Wert**  

```
aws emr create-cluster --release-label emr-7.12.0 \
--instance-type m5.xlarge --instance-count 1 \
--emrfs Consistent=true,Args=[fs.s3.consistent.throwExceptionOnInconsistency=false, fs.s3.consistent.retryPolicyType=fixed,fs.s3.consistent.retryPeriodSeconds=10] --ec2-attributes KeyName=myKey
```

**Anmerkung**  
Linux-Zeilenfortsetzungszeichen (\$1) 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 (^).

Weitere Informationen finden Sie unter [Consistent view](emr-plan-consistent-view.md).

## EMRFS-Konfigurationen für IMDS rufen Regionen ab
<a name="randomized-exponential-backoff-retry"></a>

EMRFS nutzt den IMDS (Instance-Metadaten-Service), um die Instance-Region und Amazon S3, DynamoDB oder Endpunkte abzurufen. AWS KMS IMDS hat jedoch ein Limit für die Anzahl der Anfragen, die es verarbeiten kann, und Anfragen, die dieses Limit überschreiten, schlagen fehl. Dieses IMDS-Limit kann dazu führen, dass EMRFS-Initialisierungen fehlschlagen und die Abfrage oder der Befehl fehlschlagen. Sie können den folgenden Mechanismus für zufällige exponentielle Backoff-Wiederholungen und die Konfigurationseigenschaften einer Fallback-Region in emrfs-site.xml verwenden, um das Szenario zu beheben, in dem alle Wiederholungsversuche fehlschlagen.

```
<property>
    <name>fs.s3.region.retryCount</name>
    <value>3</value>
    <description>
    Maximum retries that would be attempted to get AWS region.
    </description>
</property>
<property>
    <name>fs.s3.region.retryPeriodSeconds</name>
    <value>3</value>
    <description>
    Base sleep time in second for each get-region retry.
    </description>
</property>
<property>
    <name>fs.s3.region.fallback</name>
    <value>us-east-1</value>
    <description>
    Fallback to this region after maximum retries for getting AWS region have been reached.
    </description>
</property>
```

# Konsistente Ansicht der Metadaten in EMRFS
<a name="emrfs-metadata"></a>

Die konsistente Ansicht von EMRFS verfolgt die Konsistenz unter Verwendung einer DynamoDB-Tabelle nach, um Objekte in Amazon S3 nachzuverfolgen, die mit EMRFS synchronisiert oder erstellt wurden. Mithilfe dieser Metadaten werden alle Operationen (Lesen, Schreiben, Aktualisieren und Kopieren) verfolgt. Sie enthalten keine tatsächlichen Inhalte. Anhand der Metadaten wird überprüft, ob die Objekte oder Metadaten, die von Amazon S3 eingehen, den erwarteten Werten entsprechen. Diese Bestätigung gibt EMRFS die Möglichkeit, die Listenkonsistenz und read-after-write Konsistenz für neue Objekte, die EMRFS in Amazon S3 schreibt, oder für Objekte, die mit EMRFS synchronisiert wurden, zu überprüfen. Mehrere Cluster können dieselben Metadaten verwenden.

**So fügen Sie Einträge zu den Metadaten hinzu**  
Sie können die Unterbefehle `import` oder `sync` verwenden, um Metadaten Einträge hinzuzufügen. `sync` gibt den Status der Amazon-S3-Objekte in einem Pfad an, während `import` ausschließlich zum Hinzufügen neuer Einträge zu den Metadaten verwendet wird. Weitere Informationen finden Sie unter [Die EMRFS-CLI-Befehlsreferenz](emrfs-cli-reference.md).

**So überprüfen Sie Unterschiede zwischen Metadaten und Objekten in Amazon S3**  
Um eine Prüfung auf Abweichungen zwischen den Metadaten und Amazon S3 auszuführen, verwenden Sie den Unterbefehl `diff` der EMRFS-CLI. Weitere Informationen finden Sie unter [Die EMRFS-CLI-Befehlsreferenz](emrfs-cli-reference.md).

**So erkennen Sie, ob Metadatenoperationen gedrosselt werden**  
EMRFS definiert die maximale Standarddurchsatzkapazität für die Metadaten für Lese- und Schreiboperationen mit jeweils 500 und 100 Einheiten. Eine große Anzahl von Objekten oder Buckets kann dazu führen, dass Vorgänge dieses Limit überschreiten. Sie werden dann von DynamoDB gedrosselt. Zum Beispiel kann es bei einer Anwendung dazu kommen, dass EMRFS eine `ProvisionedThroughputExceededException` auslöst, wenn Sie eine Operation durchführen, die diese Kapazitätsgrenzen überschreitet. Bei der Drosselung versucht das EMRFS-CLI-Tool, mit [exponentiellem Backoff](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) erneut in die DynamoDB-Tabelle zu schreiben, bis die Operation abgeschlossen ist oder wenn der Höchstwert für die Wiederholversuche für das Schreiben von Objekten von Amazon EMR nach Amazon S3 erreicht ist. 

Sie können Ihre eigene Durchsatzkapazitätsgrenzen konfigurieren. DynamoDB hat jedoch strenge Partitionsgrenzen von 3000 Lesekapazitätseinheiten (RCUs) und 1000 Schreibkapazitätseinheiten (WCUs) pro Sekunde für Lese- und Schreiboperationen. Um durch Drosselung verursachte `sync` Ausfälle zu vermeiden, empfehlen wir, den Durchsatz für Lesevorgänge auf weniger als 3000 RCUs und für Schreibvorgänge auf weniger als 1000 zu begrenzen. WCUs Anweisungen zur Festlegung benutzerdefinierter Durchsatzkapazitätsgrenzen finden Sie unter [Konfigurieren der konsistenten Ansicht](emrfs-configure-consistent-view.md).

Sie können auch CloudWatch Amazon-Metriken für Ihre EMRFS-Metadaten in der DynamoDB-Konsole anzeigen, wo Sie die Anzahl der gedrosselten Lese- und Schreibanforderungen sehen können. Wenn für gedrosselte Anforderungen ein Wert ungleich null vorliegt, profitiert Ihre Anwendung möglicherweise von einer Erhöhung der zugewiesenen Durchsatzkapazität für Lese- oder Schreiboperationen. Sie realisieren ggf. auch dann eine höhere Performance, wenn Sie sehen, dass sich Ihre Operationen dem zugewiesenen Höchstwert für die Durchsatzkapazität für Lese- und Schreibvorgänge für einen längeren Zeitraum nähern.

**Durchsatzmerkmale für bedeutende EMRFS-Operationen**  
Die Standardeinstellung für Lese- und Schreibvorgänge beträgt 400 bzw. 100 Durchsatzkapazitätseinheiten. Die folgenden Leistungsmerkmale geben Ihnen eine Vorstellung davon, welcher Durchsatz für bestimmte Operationen erforderlich ist. Diese Tests wurden unter Verwendung eines `m3.large`-Clusters mit einem einzigen Knoten durchgeführt. Bei allen Operationen handelte es sich um Single-Thread-Vorgänge. Die Performance kann je nach Charakteristika der jeweiligen Anwendung sehr unterschiedlich ausfallen und etwas Experimentieren erfordern, um die Dateisystemoperationen zu optimieren.


| Operation  | Durchschnittlich read-per-second  | Durchschnittlich write-per-second  | 
| --- | --- | --- | 
| create (Objekt) | 26.79 |  6.70 | 
| delete (Objekt) | 10.79 |  10.79 | 
| delete (Verzeichnis mit 1000 Objekten) | 21.79 | 338.40  | 
|  getFileStatus(Objekt) | 34.70 | 0  | 
| getFileStatus(Verzeichnis) | 19.96 | 0 | 
| listStatus (Verzeichnis mit 1 Objekt) | 43.31 | 0 | 
| listStatus (Verzeichnis mit 10 Objekten) | 44.34 | 0 | 
| listStatus (Verzeichnis mit 100 Objekten) | 84.44 | 0 | 
| listStatus (Verzeichnis mit 1.000 Objekten) | 308.81 | 0 | 
| listStatus (Verzeichnis mit 10.000 Objekten) | 416.05 | 0 | 
| listStatus (Verzeichnis mit 100.000 Objekten) | 823.56 | 0 | 
| listStatus (Verzeichnis mit 1 Million Objekten) | 882.36 | 0 | 
| mkdir (durchgehend für 120 Sekunden)  | 24.18 | 4.03 | 
| mkdir | 12.59 | 0 | 
| rename (Objekt) | 19.53 | 4.88 | 
| rename (Verzeichnis mit 1000 Objekten) | 23.22 | 339.34 | 

**So übermitteln Sie einen Schritt, der alle alten Daten aus Ihren Metadaten entfernt**  
Unter Umständen möchten Benutzer bestimmte Einträge in den DynamoDB-basierten Metadaten entfernen. So können Sie die Speicherkosten im Zusammenhang mit der Tabelle reduzieren. Die Benutzer haben die Möglichkeit, mit dem Unterbefehl `delete` der EMRFS-Befehlszeilenschnittstelle bestimmte Einträge manuell oder programmgesteuert zu bereinigen. Wenn Sie jedoch Einträge aus den Metadaten löschen, führt EMRFS keine Konsistenzprüfungen mehr durch.

Die programmgesteuerte Bereinigung nach Abschluss eines Auftrags kann durch Übermittlung eines letzten Schritts zu Ihrem Cluster erfolgen, wodurch ein Befehl in der EMRFS-Befehlszeilenschnittstelle ausgeführt wird. Geben Sie z. B. den folgenden Befehl ein, um einen Schritt zum Löschen aller Einträge an Ihren Cluster zu übermitteln, die älter als zwei Tage sind.

```
aws emr add-steps --cluster-id j-2AL4XXXXXX5T9 --steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"]
{
    "StepIds": [
        "s-B12345678902"
    ]
}
```

Verwenden Sie den zurückgegebenen StepId Wert, um in den Protokollen nach dem Ergebnis des Vorgangs zu suchen.

# Konsistenzbenachrichtigungen für CloudWatch und Amazon SQS konfigurieren
<a name="emrfs-configure-sqs-cw"></a>

Sie können CloudWatch Metriken und Amazon SQS SQS-Nachrichten in EMRFS für eventuelle Konsistenzprobleme in Amazon S3 aktivieren. 

**CloudWatch**  
Wenn CloudWatch Metriken aktiviert sind, wird jedes Mal, wenn ein `FileSystem` API-Aufruf aufgrund der eventuellen **Konsistenz von Amazon S3 fehlschlägt, eine Metrik namens Inconsistency** übertragen. 

**So zeigen Sie CloudWatch Metriken für eventuelle Konsistenzprobleme in Amazon S3 an**

**Um die **Inkonsistenz-Metrik** in der CloudWatch Konsole anzuzeigen, wählen Sie die EMRFS-Metriken und dann ein Paar mit dem Namen **JobFlowId**/Metric aus.** Beispiel: `j-162XXXXXXM2CU ListStatus`, `j-162XXXXXXM2CU GetFileStatus` usw.

1. Öffnen Sie die Konsole unter CloudWatch . [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Wählen Sie im **Dashboard (Dashboard)** im Abschnitt **Metrics (Metriken)** die Option **EMRFS (EMRFS)** aus. 

1. Wählen Sie im Bereich **Job Flow Metrics** ein oder mehrere **JobFlowId****/Metric Name-Paare** aus. Im Fenster darunter wird eine grafische Darstellung der Metriken angezeigt.

**Amazon SQS**  
Wenn Amazon-SQS-Benachrichtigungen aktiviert sind, wird bei Initialisierung von EMRFS eine Amazon SQS-Warteschlange namens `EMRFS-Inconsistency-<jobFlowId>` erstellt. Amazon-SQS-Nachrichten werden per Push-Verfahren in die Warteschlange gestellt, wenn ein `FileSystem`-API-Aufruf aufgrund eines eventuellen Konsistenzproblems von Amazon S3 fehlschlägt. Die Nachricht enthält Informationen wie API JobFlowId, eine Liste inkonsistenter Pfade, einen Stack-Trace usw. Nachrichten können mit der Amazon-SQS-Konsole oder dem EMRFS-Befehl `read-sqs` gelesen werden.

**Verwalten von Amazon-SQS-Nachrichten bei eventuellen Konsistenzproblemen von Amazon S3**

Amazon-SQS-Nachrichten bei eventuellen Konsistenzproblemen in Amazon S3 können über die EMRFS-CLI gelesen werden. Um Nachrichten aus einer EMRFS-Amazon-SQS-Warteschlange zu lesen, geben Sie den Befehl `read-sqs` ein und geben Sie für die resultierende Ausgabedatei einen Speicherort im lokalen Dateisystem des Hauptknotens an. 

Sie können eine EMRFS-Amazon-SQS-Warteschlange mit dem Befehl `delete-sqs` löschen.

1. Zum Lesen von Nachrichten aus einer Amazon-SQS-Warteschlange geben Sie den folgenden Befehl ein. *queuename*Ersetzen Sie durch den Namen der Amazon SQS SQS-Warteschlange, die Sie konfiguriert haben, und */path/filename* ersetzen Sie sie durch den Pfad zur Ausgabedatei:

   ```
   emrfs read-sqs --queue-name queuename --output-file /path/filename
   ```

   Um z. B. Amazon-SQS-Nachrichten aus der Standardwarteschlange zu lesen und auszugeben, geben Sie Folgendes ein:

   ```
   emrfs read-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU --output-file /path/filename
   ```
**Anmerkung**  
Sie können auch die Verknüpfungen `-q` und `-o` anstelle von `--queue-name` und `--output-file` verwenden.

1. Zum Löschen einer Amazon-SQS-Warteschlange geben Sie den folgenden Befehl ein:

   ```
   emrfs delete-sqs --queue-name queuename
   ```

   Um z. B. die Standardwarteschlange zu löschen, geben Sie Folgendes ein:

   ```
   emrfs delete-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU
   ```
**Anmerkung**  
Sie können auch das Kürzel `-q` anstelle von `--queue-name` verwenden.

# Konfigurieren der konsistenten Ansicht
<a name="emrfs-configure-consistent-view"></a>

Sie können zusätzliche Einstellungen für die konsistente Ansicht konfigurieren, indem Sie sie mithilfe von Konfigurationseigenschaften für `emrfs-site`-Eigenschaften bereitstellen. Sie können beispielsweise einen anderen Standard-DynamoDB-Durchsatz wählen, indem Sie die folgenden Argumente an die CLI-`--emrfs`-Option übergeben, die emrfs-site-Konfigurationsklassifizierung (nur Amazon EMR Version 4.x und höher) oder eine Bootstrap-Aktion zur Konfiguration der Datei emrfs-site.xml auf dem Hauptknoten verwenden:

**Example Ändern der Standardwerte zum Lesen und Schreiben von Metadaten bei Cluster-Start**  

```
aws emr create-cluster --release-label emr-7.12.0 --instance-type m5.xlarge \
--emrfs Consistent=true,Args=[fs.s3.consistent.metadata.read.capacity=600,\
fs.s3.consistent.metadata.write.capacity=300] --ec2-attributes KeyName=myKey
```

Verwenden Sie alternativ die folgende Konfigurationsdatei und speichern Sie sie lokal oder in Amazon S3:

```
[
    {
      "Classification": "emrfs-site",
      "Properties": {
        "fs.s3.consistent.metadata.read.capacity": "600",
        "fs.s3.consistent.metadata.write.capacity": "300"
      }
    }
 ]
```

Verwenden Sie die Konfiguration, die Sie erstellt haben, mit der folgenden Syntax:

```
aws emr create-cluster --release-label emr-7.12.0 --applications Name=Hive \
--instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json
```

**Anmerkung**  
Linux-Zeilenfortsetzungszeichen (\$1) 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 (^).

Die folgenden Optionen können mithilfe von Konfigurationen oder AWS CLI `--emrfs` Argumenten festgelegt werden. Informationen über diese Argumente finden Sie in der [AWS CLI -Befehlsreferenz](https://docs.aws.amazon.com/cli/latest/reference/).


**`emrfs-site.xml`-Eigenschaften für die konsistente Ansicht**  

| Eigenschaft  | Standardwert | Description  | 
| --- | --- | --- | 
| fs.s3.consistent | false |  Wenn diese Eigenschaft auf **true** festgelegt wurde, wird EMRFS für die Verwendung von DynamoDB zur Bereitstellung von Konsistenz konfiguriert.  | 
| fs.s3.consistent.retryPolicyType | exponential | Diese Eigenschaft gibt die Richtlinie an, die für Wiederholversuche bei Konsistenzproblemen verwendet werden soll. Optionen: exponentiell, fest oder keine. | 
| fs.s3.consistent.retryPeriodSeconds | 1 | Diese Eigenschaft legt die Wartezeit zwischen den Wiederholversuchen bei Konsistenzproblemen fest. | 
| fs.s3.consistent.retryCount | 10 | Diese Eigenschaft legt die maximale Anzahl von Wiederholversuchen bei erkannten Inkonsistenzen fest. | 
| fs.s3.consistent.throwExceptionOnInconsistency | true | Diese Eigenschaft bestimmt, ob eine Konsistenzausnahme ausgelöst oder protokolliert werden soll. Wenn diese Eigenschaft auf true festgelegt wurde, wird eine ConsistencyException ausgelöst. | 
| fs.s3.consistent.metadata.autoCreate | true | Wenn diese Eigenschaft auf true festgelegt wurde, ermöglicht sie die automatische Erstellung von Metadatentabellen. | 
| fs.s3.consistent.metadata.etag.verification.enabled | true | Mit Amazon EMR 5.29.0 ist diese Eigenschaft standardmäßig aktiviert. Wenn diese Option aktiviert ist, verwendet EMRFS S3, ETags um zu überprüfen, ob es sich bei den gelesenen Objekten um die neueste verfügbare Version handelt. Diese Funktion ist hilfreich für read-after-update Anwendungsfälle, in denen Dateien auf S3 überschrieben werden, während derselbe Name beibehalten wird. Diese ETag Überprüfungsfunktion funktioniert derzeit nicht mit S3 Select. | 
| fs.s3.consistent.metadata.tableName | EmrFSMetadata | Diese Eigenschaft gibt den Namen der Metadatentabelle in DynamoDB an. | 
| fs.s3.consistent.metadata.read.capacity | 500 | Diese Eigenschaft gibt die DynamoDB-Lesekapazität an, die bei Erstellung der Metadatentabelle bereitgestellt wird. | 
| fs.s3.consistent.metadata.write.capacity | 100 | Diese Eigenschaft gibt die DynamoDB-Schreibkapazität an, die bei Erstellung der Metadatentabelle bereitgestellt wird. | 
| fs.s3.consistent.fastList | true | Wenn diese Eigenschaft auf true festgelegt wurde, verwendet sie mehrere Threads zum Auflisten eines Verzeichnisses (wenn notwendig). Damit diese Eigenschaft verwendet werden kann, muss Konsistenz aktiviert sein. | 
| fs.s3.consistent.fastList.prefetchMetadata | false | Wenn diese Eigenschaft auf true festgelegt wurde, ermöglicht sie den Vorabruf von Metadaten für Verzeichnisse mit mehr als 20.000 Elementen. | 
| fs.s3.consistent.notification.CloudWatch | false | Wenn diese Option auf gesetzt isttrue, werden CloudWatch Metriken für FileSystem API-Aufrufe aktiviert, die aufgrund eventueller Konsistenzprobleme von Amazon S3 fehlschlagen. | 
| fs.s3.consistent.notification.SQS | false | Wenn diese Eigenschaft auf true festgelegt wurde, werden Benachrichtigungen zu eventuellen Konsistenzproblemen per Push an eine Amazon-SQS-Warteschlange gesendet. | 
| fs.s3.consistent.notification.SQS.queueName | EMRFS-Inconsistency-<jobFlowId> | Wenn Sie diese Eigenschaft ändern, können Sie Ihren eigenen SQS-Warteschlangennamen für Nachrichten zu eventuellen Konsistenzproblemen von Amazon S3 angeben. | 
| fs.s3.consistent.notification.SQS.customMsg | none | Über diese Eigenschaft können Sie benutzerdefinierte Informationen angeben, die in SQS-Nachrichten zu eventuellen Konsistenzproblemen von Amazon S3 enthalten sein sollen. Wenn für diese Eigenschaft kein Wert festgelegt ist, ist das entsprechende Feld in der Nachricht leer.  | 
| fs.s3.consistent.dynamodb.endpoint | none | Über diese Eigenschaft können Sie einen benutzerdefinierten DynamoDB-Endpunkt für Ihre Metadaten der konsistenten Ansicht angeben. | 
| fs.s3.useRequesterPaysHeader | false | Wenn diese Eigenschaft auf true gesetzt ist, erlaubt sie Amazon-S3-Anfragen an Buckets mit aktivierter Bezahler-Option.  | 

# Die EMRFS-CLI-Befehlsreferenz
<a name="emrfs-cli-reference"></a>

Die EMRFS-CLI ist standardmäßig auf allen Cluster-Hauptknoten installiert, die mit Amazon EMR Version 3.2.1 oder höher erstellt wurden. Sie können die EMRFS CLI zum Verwalten der Metadaten für die konsistente Ansicht verwenden. 

**Anmerkung**  
Der **emrfs** Befehl wird nur mit VT100 Terminalemulation unterstützt. Er funktioniert jedoch unter Umständen auch mit anderen Terminal-Emulator-Modi.

## Übergeordneter Befehl "emrfs"
<a name="emrfs-top-level"></a>

Der Top-Level-Befehl **emrfs** unterstützt die folgende Struktur.

```
emrfs [describe-metadata | set-metadata-capacity | delete-metadata | create-metadata | \
list-metadata-stores | diff | delete | sync | import ] [options] [arguments]
```

Geben Sie [Optionen] mit oder ohne [Argumente] an, wie in der folgenden Tabelle beschrieben. Für [Optionen], die speziell für Unterbefehle (`describe-metadata`, `set-metadata-capacity` usw.) gelten, finden Sie nachstehend die jeweiligen Unterbefehle.


**[Optionen] für emrfs**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-a AWS_ACCESS_KEY_ID \| --access-key AWS_ACCESS_KEY_ID`  |  Der AWS Zugriffsschlüssel, den Sie verwenden, um Objekte in Amazon S3 zu schreiben und einen Metadatenspeicher in DynamoDB zu erstellen oder darauf zuzugreifen. Standardmäßig *AWS\$1ACCESS\$1KEY\$1ID* ist er auf den Zugriffsschlüssel festgelegt, der zur Erstellung des Clusters verwendet wurde.  |  Nein  | 
|  `-s AWS_SECRET_ACCESS_KEY \| --secret-key AWS_SECRET_ACCESS_KEY`  |  Der AWS geheime Schlüssel, der dem Zugriffsschlüssel zugeordnet ist, den Sie verwenden, um Objekte in Amazon S3 zu schreiben und einen Metadatenspeicher in DynamoDB zu erstellen oder darauf zuzugreifen. Standardmäßig *AWS\$1SECRET\$1ACCESS\$1KEY* ist dieser Wert auf den geheimen Schlüssel gesetzt, der dem Zugriffsschlüssel zugeordnet ist, der zur Erstellung des Clusters verwendet wurde.  |  Nein  | 
|  `-v \| --verbose`  |  Erzeugt eine ausführliche Ausgabe.  |  Nein  | 
|  `-h \| --help`  |  Zeigt die Hilfenachricht für den `emrfs`-Befehl mit einer Verwendungsanweisung an.  |  Nein  | 

## Unterbefehl "emrfs describe-metadata"
<a name="emrfs-describe-metadata"></a>


**[Optionen] für emrfs describe-metadata**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 

**Example Beispiel für "emrfs describe-metadata"**  <a name="emrfs-describe-metadata"></a>
Das folgende Beispiel beschreibt die Standardmetadatentabelle.  

```
$ emrfs describe-metadata
EmrFSMetadata
  read-capacity: 400
  write-capacity: 100
  status: ACTIVE
  approximate-item-count (6 hour delay): 12
```

## Unterbefehl emrfs set-metadata-capacity
<a name="emrfs-set-metadata-capacity"></a>


**[Optionen] für emrfs set-metadata-capacity**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  Die angeforderte Lesedurchsatzkapazität für die Metadatentabelle. Wenn das *READ\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`400`.  |  Nein  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  Die angeforderte Schreibdurchsatzkapazität für die Metadatentabelle. Wenn das *WRITE\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für emrfs set-metadata-capacity**  
Im folgenden Beispiel ist für die Metadatentabelle `600` die Lesedurchsatzkapazität auf `150` und die Schreibkapazität auf `EmrMetadataAlt` festgelegt.  

```
$ emrfs set-metadata-capacity --metadata-name EmrMetadataAlt  --read-capacity 600 --write-capacity 150
  read-capacity: 400
  write-capacity: 100
  status: UPDATING
  approximate-item-count (6 hour delay): 0
```

## Unterbefehl "emrfs delete-metadata"
<a name="emrfs-delete-metadata"></a>


**[Optionen] für emrfs delete-metadata**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 

**Example Beispiel für "emrfs delete-metadata"**  
Das folgende Beispiel löscht die Standardmetadatentabelle.  

```
$ emrfs delete-metadata
```

## Unterbefehl "emrfs create-metadata"
<a name="emrfs-create-metadata"></a>


**[Optionen] für emrfs create-metadata**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  `-r READ_CAPACITY \| --read-capacity READ_CAPACITY`  |  Die angeforderte Lesedurchsatzkapazität für die Metadatentabelle. Wenn das *READ\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`400`.  |  Nein  | 
|  `-w WRITE_CAPACITY \| --write-capacity WRITE_CAPACITY`  |  Die angeforderte Schreibdurchsatzkapazität für die Metadatentabelle. Wenn das *WRITE\$1CAPACITY* Argument nicht angegeben wird, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs create-metadata"**  
Im folgenden Beispiel wird eine Metadatentabelle mit dem Namen `EmrFSMetadataAlt` erstellt.  

```
$ emrfs create-metadata -m EmrFSMetadataAlt
Creating metadata: EmrFSMetadataAlt
EmrFSMetadataAlt
  read-capacity: 400
  write-capacity: 100
  status: ACTIVE
  approximate-item-count (6 hour delay): 0
```

## Unterbefehl emrfs list-metadata-stores
<a name="emrfs-list-metadata-stores"></a>

Der Unterbefehl **emrfs list-metadata-stores** hat keine [Optionen]. 

**Example List-metadata-stores Beispiel**  
Im folgenden Beispiel werden Ihre Metadatentabellen aufgelistet.  

```
$ emrfs list-metadata-stores
  EmrFSMetadata
```

## Unterbefehl "emrfs diff"
<a name="emrfs-diff"></a>


**[Optionen] für emrfs diff**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zu dem Amazon-S3-Bucket für den Vergleich mit der Metadaten-Tabelle. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 

**Example Beispiel für "emrfs diff"**  
Im folgenden Beispiel wird die Standardmetadatentabelle mit einem Amazon-S3-Bucket verglichen.  

```
$ emrfs diff s3://elasticmapreduce/samples/cloudfront
BOTH | MANIFEST ONLY | S3 ONLY
DIR elasticmapreduce/samples/cloudfront
DIR elasticmapreduce/samples/cloudfront/code/
DIR elasticmapreduce/samples/cloudfront/input/
DIR elasticmapreduce/samples/cloudfront/logprocessor.jar
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-14.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-15.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-16.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-17.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-18.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-19.WxYz1234
DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-20.WxYz1234
DIR elasticmapreduce/samples/cloudfront/code/cloudfront-loganalyzer.tgz
```

## Unterbefehl "emrfs delete"
<a name="emrfs-delete"></a>


**[Optionen] für emrfs delete**  

|  Option  |  Description  |  Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zum Amazon-S3-Bucket, den Sie für die konsistente Ansicht verfolgen. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 
| -t TIME \$1 --time TIME |  Die Ablaufzeit (interpretiert mithilfe des Zeiteinheit-Arguments). Alle Metadateneinträge, die älter als das *TIME* Argument sind, werden für den angegebenen Bucket gelöscht.  |  | 
|  `-u UNIT \| --time-unit UNIT`  |  Die Maßeinheit für die Interpretation des Zeitarguments (Nanosekunden, Mikrosekunden, Millisekunden, Sekunden, Minuten, Stunden oder Tage). Wenn kein Argument angegeben ist, lautet der Standardwert `days`.  |  | 
|  `--read-consumption READ_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Lesedurchsatz für die Operation **delete**. Wenn das *READ\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`400`.  |  Nein   | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Schreibdurchsatz für die Operation **delete**. Wenn das *WRITE\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs delete"**  
Im folgenden Beispiel werden alle Objekte in einem Amazon-S3-Bucket aus den verfolgenden Metadaten für die konsistente Ansicht entfernt.  

```
$ emrfs delete s3://elasticmapreduce/samples/cloudfront
entries deleted: 11
```

## Unterbefehl "emrfs import"
<a name="emrfs-import"></a>


**[Optionen] für emrfs import**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zum Amazon-S3-Bucket, den Sie für die konsistente Ansicht verfolgen. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 
|  `--read-consumption READ_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Lesedurchsatz für die Operation **delete**. Wenn das *READ\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`400`.  |  Nein  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Schreibdurchsatz für die Operation **delete**. Wenn das *WRITE\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs import"**  
Im folgenden Beispiel werden alle Objekte in einem Amazon-S3-Bucket mit den verfolgenden Metadaten für die konsistente Ansicht importiert. Alle unbekannten Schlüssel werden ignoriert.  

```
$ emrfs import s3://elasticmapreduce/samples/cloudfront
```

## Unterbefehl "emrfs sync"
<a name="emrfs-sync"></a>


**[Optionen] für emrfs sync**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-m METADATA_NAME \| --metadata-name METADATA_NAME`  |  *METADATA\$1NAME*ist der Name der DynamoDB-Metadatentabelle. Wenn das *METADATA\$1NAME* Argument nicht angegeben wird, ist der Standardwert. `EmrFSMetadata`  |  Nein  | 
|  *s3://s3Path*  |  Der Pfad zum Amazon-S3-Bucket, den Sie für die konsistente Ansicht verfolgen. Die Buckets werden rekursiv synchronisiert.  |  Ja  | 
|  `--read-consumption READ_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Lesedurchsatz für die Operation **delete**. Wenn das *READ\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`400`.  |  Nein  | 
|  `--write-consumption WRITE_CONSUMPTION`  |  Die angeforderte Menge an verfügbarem Schreibdurchsatz für die Operation **delete**. Wenn das *WRITE\$1CONSUMPTION* Argument nicht angegeben ist, ist der Standardwert`100`.  |  Nein  | 

**Example Beispiel für "emrfs sync"**  
Im folgenden Beispiel werden alle Objekte in einem Amazon-S3-Bucket mit den verfolgenden Metadaten für die konsistente Ansicht importiert. Alle unbekannten Schlüssel werden gelöscht.   

```
$ emrfs sync s3://elasticmapreduce/samples/cloudfront
Synching samples/cloudfront                                       0 added | 0 updated | 0 removed | 0 unchanged
Synching samples/cloudfront/code/                                 1 added | 0 updated | 0 removed | 0 unchanged
Synching samples/cloudfront/                                      2 added | 0 updated | 0 removed | 0 unchanged
Synching samples/cloudfront/input/                                9 added | 0 updated | 0 removed | 0 unchanged
Done synching s3://elasticmapreduce/samples/cloudfront            9 added | 0 updated | 1 removed | 0 unchanged
creating 3 folder key(s)
folders written: 3
```

## Unterbefehl "emrfs read-sqs"
<a name="emrfs-read-sqs"></a>


**[Optionen] für emrfs read-sqs**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*ist der Name der Amazon SQS SQS-Warteschlange, in `emrfs-site.xml` der konfiguriert ist. Der Standardwert ist **EMRFS-Inconsistency-<jobFlowId>**.  |  Ja  | 
|  `-o OUTPUT_FILE \| --output-file OUTPUT_FILE`  |  *OUTPUT\$1FILE*ist der Pfad zur Ausgabedatei im lokalen Dateisystem des Master-Knotens. Nachrichten, die aus der Warteschlange gelesen werden, werden in diese Datei geschrieben.   |  Ja  | 

## Unterbefehl "emrfs delete-sqs"
<a name="emrfs-delete-sqs"></a>


**[Optionen] für emrfs delete-sqs**  

| Option  | Description  | Erforderlich  | 
| --- | --- | --- | 
|  `-q QUEUE_NAME \| --queue-name QUEUE_NAME`  |  *QUEUE\$1NAME*ist der Name der Amazon SQS SQS-Warteschlange, in `emrfs-site.xml` der konfiguriert ist. Der Standardwert ist **EMRFS-Inconsistency-<jobFlowId>**.  |  Ja  | 

## Übermitteln von EMRFS-CLI-Befehlen als Schritte
<a name="emrfs-submit-steps-as-cli"></a>

Das folgende Beispiel zeigt, wie Sie das `emrfs` Hilfsprogramm auf dem Master-Knoten verwenden, indem Sie die AWS CLI OR-API nutzen und `command-runner.jar` den `emrfs` Befehl als Schritt ausführen. Das Beispiel verwendet den AWS SDK für Python (Boto3) , um einem Cluster einen Schritt hinzuzufügen, der Objekte in einem Amazon S3 S3-Bucket zur standardmäßigen EMRFS-Metadatentabelle hinzufügt.

```
import boto3
from botocore.exceptions import ClientError


def add_emrfs_step(command, bucket_url, cluster_id, emr_client):
    """
    Add an EMRFS command as a job flow step to an existing cluster.

    :param command: The EMRFS command to run.
    :param bucket_url: The URL of a bucket that contains tracking metadata.
    :param cluster_id: The ID of the cluster to update.
    :param emr_client: The Boto3 Amazon EMR client object.
    :return: The ID of the added job flow step. Status can be tracked by calling
             the emr_client.describe_step() function.
    """
    job_flow_step = {
        "Name": "Example EMRFS Command Step",
        "ActionOnFailure": "CONTINUE",
        "HadoopJarStep": {
            "Jar": "command-runner.jar",
            "Args": ["/usr/bin/emrfs", command, bucket_url],
        },
    }

    try:
        response = emr_client.add_job_flow_steps(
            JobFlowId=cluster_id, Steps=[job_flow_step]
        )
        step_id = response["StepIds"][0]
        print(f"Added step {step_id} to cluster {cluster_id}.")
    except ClientError:
        print(f"Couldn't add a step to cluster {cluster_id}.")
        raise
    else:
        return step_id


def usage_demo():
    emr_client = boto3.client("emr")
    # Assumes the first waiting cluster has EMRFS enabled and has created metadata
    # with the default name of 'EmrFSMetadata'.
    cluster = emr_client.list_clusters(ClusterStates=["WAITING"])["Clusters"][0]
    add_emrfs_step(
        "sync", "s3://elasticmapreduce/samples/cloudfront", cluster["Id"], emr_client
    )


if __name__ == "__main__":
    usage_demo()
```

Sie können den zurückgegebenen Wert `step_id` verwenden, um die Protokolle auf das Ergebnis der Operation zu prüfen.