翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EMRFS S3 向けに最適化されたコミット・プロトコルとマルチパートアップロード
EMRFS S3 向けに最適化されたコミットプロトコルで動的パーティション上書き最適化を使用するには、Amazon EMR でマルチパートアップロードを有効にする必要があります。マルチパートアップロードは、デフォルトで有効になっています。また、必要に応じて再度有効にすることができます。詳細については、「Amazon EMR 管理ガイド」の「Amazon S3 用のマルチパートアップロードを設定する」を参照してください。
動的パーティションの上書き中、EMRFS S3に最適化されたコミットプロトコルは、マルチパートアップロードのトランザクションのような特性を利用して、タスク試行によって書き込まれたファイルが、ジョブのコミット時にのみジョブの出力場所にのみ表示されるようにします。このようにマルチパートアップロードを使用することで、コミットプロトコルはジョブのコミットのパフォーマンスをデフォルトよりも向上させますSQLHadoopMapReduceCommitProtocol
。EMRFS S3 に最適化されたコミットプロトコルを使用する場合、従来のマルチパートアップロードの動作とは考慮すべき重要な違いがいくつかあります。
-
マルチパートアップロードは常にファイルサイズに関係なく実行されます。これは EMRFS のデフォルトの動作とは異なり、マルチパートアップロードがトリガーされるファイルサイズは
fs.s3n.multipart.uploads.split.size
プロパティで制御されます。 -
タスクがコミットされるか中止されるまで、マルチパートアップロードは長期間不完全な状態になります。これは EMRFS のデフォルトの動作とは異なり、タスクで指定されたファイルの書き込みが終了するとマルチパートアップロードが完了します。
このような違いにより、タスクが実行されて Amazon S3 へのデータの書き込みが行われているときに Spark Executor JVM がクラッシュしたり強制終了されたりすると、不完全なマルチパートアップロードが残される可能性が高くなります。このため、EMRFS S3 に最適化されたコミットプロトコルを使用する場合は、失敗したマルチパートアップロードを管理するためのベストプラクティスに従うようにしてください。詳細については、「Amazon EMR 管理ガイド」の Amazon S3 バケットの処理に関するベストプラクティスを参照してください。