Consistent view - Amazon EMR

Consistent view

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 der starken Lese-nach-Schreib-Konsistenz von Amazon S3 am 1. Dezember 2020 müssen Sie die EMRFS-konsistente Ansicht (EMRFS CV) nicht mehr mit Ihren Amazon-EMR-Clustern verwenden. EMRFS CV ist ein optionales Feature, die es Amazon-EMR-Clustern ermöglicht, Amazon-S3-Objekte auf ihre Listen- und Lese-nach-Schreib-Konsistenz zu überprüfen. Wenn Sie einen Cluster erstellen und EMRFS CV aktiviert ist, erstellt Amazon EMR eine Amazon-DynamoDB-Datenbank zum Speichern von Objektmetadaten, die zur Nachverfolgung von Listen und Lese-nach-Schreib-Konsistenz für S3-Objekte 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.

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
  2. Verwenden Sie alternativ AWS CLI, um Ihren Cluster mit der describe-cluster-API zu beschreiben. 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.

    2. Befolgen Sie die Anweisungen unter Einen Cluster beenden, um den Cluster zu beenden.

    3. 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.

    4. Wenn Sie AWS CLI verwenden, um einen neuen Cluster mit der create-cluster-API zu erstellen, verwenden Sie nicht die --emrfs-Option, die EMRFS CV aktiviert.

    5. Wenn Sie ein SDK oder AWS CloudFormation verwenden, um einen neuen Cluster zu erstellen, verwenden Sie keine der Konfigurationen, die unter Konsistente Ansicht konfigurieren aufgeführt sind.

  2. So klonen Sie einen Cluster und entfernen EMRFS CV
    1. Klicken Sie in der Amazon-EMR-Konsole auf den Cluster, der EMRFS-CV verwendet.

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

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

    4. 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" } } ]
  3. 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. Der von EMRFS CV verwendete Standardtabellenname ist EmrFSMetadata.

      aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
    2. 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.

      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": [] } ] } ] }
    3. 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.

  2. 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.

  2. Suchen Sie den in fs.s3.consistent.notification.SQS.queueName angegebenen Amazon-SQS-Warteschlangennamen, wie unter Konsistente Ansicht konfigurieren 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