翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
S3A MagicV2 コミッター
EMR-6.15.0 リリースでは、Amazon EMR は MagicV2 コミッターと呼ばれる新しい S3A コミッタータイプを導入しました。この機能に関する包括的な情報については、関連するドキュメントセクションを参照してください。
MagicV2 Committer は、オープンソースの MagicCommitter
元の MagicCommitter と比較して、MagicV2 コミッターは、ジョブコミットフェーズではなく、タスクコミットフェーズ中にジョブの出力場所にファイルを書き込むことで、優れたパフォーマンスを示します。このアプローチにより、分散ファイル書き込みが可能になり、Amazon S3 での一時的なコミットメタデータストレージが不要になり、コスト効率が向上します。さらに、MagicV2 コミッターは、コミットプロセス中に複数のスレッド間でファイルパスを上書きできるため、柔軟性が向上します。
MagicV2 コミッターを有効にする
MagicV2 コミッターを有効にするには、ジョブ設定で次の設定を渡すか、コアサイト設定を使用して プロパティを設定します。詳細については、「アプリケーションの設定」を参照してください。
mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true
新しいファイルをコミットまたは書き込む前に既存のディレクトリを上書きする必要があるワークロードの場合、前述の設定に加えて、次の追加設定が必要です。
fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=
thread size
threads
設定のデフォルト値は です20
。ただし、パフォーマンスを向上させるために上書きするディレクトリが多数ある場合は、このパラメータを調整する必要があります。これは EMR-7.2.0 以降でのみ使用できます。
考慮事項
-
タスクの実行中および Amazon S3 へのデータの書き込み中に Java 仮想マシン (JVM) がクラッシュまたは強制終了した場合、不完全なマルチパートアップロードは残される可能性が高くなります。このため、MagicV2 コミッターを使用する場合は、失敗したマルチパートアップロードを管理するためのベストプラクティスに従ってください。詳細については、Amazon S3バケットの使用に関するベストプラクティス」セクションを参照してください。
-
ジョブが失敗しても、成功したタスクによってコミットされたファイルは送信先パスに表示されます。このような場合、ユーザーは同じ送信先パスでジョブを再実行する前に、コミットされたファイルを手動でクリーンアップする必要があります。
-
MagicV2 コミッターは、タスクがコミットまたは中止されるまで、タスクの試行によって書き込まれたファイルごとに少量のメモリを消費します。ほとんどのジョブでは、消費されるメモリの量はほとんどありません。ただし、1 つのエグゼキュタープロセスが多数のタスクを同時に処理する場合、大量のメモリ負荷がかかり、コンテナまたはエグゼキュターのメモリ不足 (OOM) が発生する可能性があります。コンテナまたはエグゼキュターのメモリを増やすと、この問題を解決できます。