EMRFSkonsistente Metadaten anzeigen - 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.

EMRFSkonsistente Metadaten anzeigen

EMRFSDie konsistente Ansicht verfolgt die Konsistenz mithilfe einer DynamoDB-Tabelle, um Objekte in Amazon S3 zu verfolgen, die mit Amazon S3 synchronisiert oder von erstellt wurden. EMRFS 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 bietet EMRFS die Möglichkeit, die Konsistenz und read-after-write Konsistenz der Listen für neue Objekte, die in Amazon S3 EMRFS geschrieben wurden, oder für Objekte, mit EMRFS denen synchronisiert wurde, 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 EMRFSCLIBefehlsreferenz.

So überprüfen Sie Unterschiede zwischen Metadaten und Objekten in Amazon S3

Um nach Unterschieden zwischen den Metadaten und Amazon S3 zu suchen, verwenden Sie den diff Unterbefehl von. EMRFS CLI Weitere Informationen finden Sie unter EMRFSCLIBefehlsreferenz.

So erkennen Sie, ob Metadatenoperationen gedrosselt werden

EMRFSlegt die standardmäßigen Durchsatzkapazitätsgrenzen für die Metadaten für ihre Lese- und Schreibvorgänge auf 500 bzw. 100 Einheiten fest. Eine große Anzahl von Objekten oder Buckets kann dazu führen, dass Vorgänge dieses Limit überschreiten. Sie werden dann von DynamoDB gedrosselt. Beispielsweise kann eine Anwendung EMRFS dazu führen, dass ein ausgelöst wird, ProvisionedThroughputExceededException wenn Sie einen Vorgang ausführen, der diese Kapazitätsgrenzen überschreitet. Bei der Drosselung versucht das EMRFS CLI Tool, mithilfe des exponentiellen Backoffs erneut zu versuchen, in die DynamoDB-Tabelle zu schreiben, bis der Vorgang abgeschlossen ist oder wenn der maximale Wiederholungswert für das Schreiben von Objekten von Amazon nach Amazon S3 erreicht ist. EMR

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.

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.

Durchsatzeigenschaften für wichtige Operationen EMRFS

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. Benutzer haben die Möglichkeit, bestimmte Einträge mithilfe des Unterbefehls manuell oder programmgesteuert zu löschen. EMRFS CLI delete Wenn Sie jedoch Einträge aus den Metadaten löschen, werden EMRFS keine Konsistenzprüfungen mehr durchgeführt.

Das programmgesteuerte Löschen nach Abschluss eines Jobs kann durchgeführt werden, indem Sie einen letzten Schritt an Ihren Cluster senden, der einen Befehl auf dem ausführt. EMRFS CLI 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 die Protokolle auf das Ergebnis des Vorgangs zu überprüfen.