整合性のあるビュー - Amazon EMR

整合性のあるビュー

警告

2023 年 6 月 1 日以降、その後リリースされる Amazon EMR では、EMRFS の整合性のあるビューに標準サポートは提供されません。既存のリリースの場合、EMRFS の整合性のあるビューは、継続して利用できます。

2020 年 12 月 1 日に Amazon S3 でリリースされた、リードアフターライトの強力な整合性確保機能により、Amazon EMR クラスターで EMRFS の整合性のビュー (EMRFS CV) を使用する必要がなくなりました。EMRFS CV は、オプションの機能であり、これによって、Amazon EMR クラスターで Amazon S3 オブジェクトに実行するリストおよびリードアフターライトの整合性を確認できます。クラスターを作成して EMRFS CV を有効にすると、Amazon EMR に Amazon DynamoDB データベースが作成され、そこに保存されたオブジェクトメタデータによって、S3 オブジェクトに実行するリストおよびリードアフターライトの整合性が追跡されます。今回のリリースにより、EMRFS CV をオフにして、この機能が使用する DynamoDB データベースを削除できるようになりました。これで、追加のコストも発生しません。次の手順に従うと、CV 機能の確認と無効化に加え、その機能が使用する DynamoDB データベースの削除を行えます。

EMRFS CV 機能の使用状況を確認するには
  1. [設定] タブに移動します。クラスターを以下のように設定している場合、EMRFS CV が使用されます。

    Classification=emrfs-site,Property=fs.s3.consistent,Value=true
  2. または、AWS CLI から、describe-cluster API を使用してクラスターを記述することもできます。出力に fs.s3.consistent: true が指定されていると、クラスターは EMRFS CV を使用します。

Amazon EMR クラスターの EMRFS CV を無効にするには

EMRFS CV の機能を無効にするには、次に示す 3 つのオプションのいずれかを使用します。これらのオプションは、テスト環境でテストした後に、実稼働環境に適用する必要があります。

  1. 既存のクラスターを停止し、EMRFS CV オプションを使用せずに新規クラスターを開始するには。
    1. クラスターの停止前に、データを確実にバックアップし、ユーザーに停止を通知してください。

    2. クラスターを停止するには、「クラスターを終了する」の手順に従います。

    3. Amazon EMR コンソールからクラスターを新規作成する場合は、[詳細オプション] に移動します。[ソフトウェア設定の編集] セクションで、EMRFS CV を有効にするオプションの選択を解除します。[EMRFS の整合性のビュー] のチェックボックスが使用可能な場合は、チェックを外したままにします。

    4. AWS CLI から create-cluster API によってクラスターを新規作成する場合は、EMRFS CV が有効になる --emrfs オプションを使用しないでください。

    5. SDK または AWS CloudFormation を使用してクラスターを新規作成する場合は、[整合性のあるビューを設定する] にリストされている設定は使用しないでください。

  2. クラスターを複製して EMRFS CV を削除するには
    1. Amazon EMR コンソールで、EMRFS CV を使用するクラスターを選択します。

    2. [クラスターの詳細] ページの上部で、[クローン] を選択します。

    3. [前へ] を選択して、[ステップ 1: ソフトウェアとステップ] に移動します。

    4. [ソフトウェア設定の編集] で EMRFS CV を削除します。[設定を編集する] で、emrfs-site 分類内にある次の設定を削除します。S3 バケットから JSON を読み込む場合は、S3 オブジェクトを変更する必要があります。

      [ {"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. インスタンスグループを使用するクラスターから EMRFS CV を削除するには
    1. 1 つの EMR クラスターが EMRFS CV に関連付けられた DynamoDB テーブルを使用しているかどうか、または複数のクラスターがテーブルを共有しているかどうかを確認するには、次のコマンドを使用します。「整合性のあるビューを設定する」の説明どおり、テーブル名は fs.s3.consistent.metadata.tableName で指定します。EMRFS CV で使用するデフォルトのテーブル名は EmrFSMetadata です。

      aws emr describe-cluster --cluster-id j-XXXXX | grep fs.s3.consistent.metadata.tableName
    2. DynamoDB データベースが別のクラスターと共有されていない場合は、次のコマンドを使用してクラスターを再設定し、EMRFS CV を非アクティブ化します。詳細については、「実行中のクラスター内のインスタンスグループの再設定」を参照してください。

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

      このコマンドにより、変更対象のファイルが開きます。次の設定を使用してファイルを変更します。

      { "ClusterId": "j-xxxx", "InstanceGroups": [ { "InstanceGroupId": "ig-xxxx", "Configurations": [ { "Classification": "emrfs-site", "Properties": { "fs.s3.consistent": "false" }, "Configurations": [] } ] } ] }
    3. DynamoDB テーブルが別のクラスターと共有されている場合は、すべてのクラスターの EMRFS CV を一度に無効化します。この操作は、クラスターが S3 の共有ロケーションにあるオブジェクトを変更しないタイミングで行ってください。

EMRFS CV に関連付けた Amazon DynamoDB リソースを削除するには

Amazon EMR クラスターから EMRFS CV を削除した後、EMRFS CV に関連付けた DynamoDB リソースを削除します。この操作を行わないと、EMRFS CV に関連する DynamoDB 料金が引き続き発生します。

  1. DynamoDB テーブルの CloudWatch メトリクスを確認し、テーブルがどのクラスターからも使用されていないことを確認します。

  2. DynamoDB テーブルを削除します。

    aws dynamodb delete-table --table-name <your-table-name>
EMRFS CV に関連付けた Amazon SQS リソースを削除するには
  1. 不整合の通知が Amazon SQS にプッシュされるようにクラスターを設定すると、SQS キューをすべて削除できます。

  2. 整合性のあるビューを設定する」の説明どおり fs.s3.consistent.notification.SQS.queueName で指定された Amazon SQS キュー名を検索します。デフォルトの場合、キュー名の形式は、EMRFS-Inconsistency-<j-cluster ID> です。

    aws sqs list-queues | grep ‘EMRFS-Inconsistency’ aws sqs delete-queue –queue-url <your-queue-url>
EMRFS CLI の使用を停止するには
  • EMRFS CV によって生成されるメタデータは、EMRFS CLI で管理します。今後リリースされる Amazon EMR では EMRFS CV の標準サポートが終了するため、EMRFS CLI のサポートも終了します。