Amazon EMR アプリケーションが HTTP 404「Not Found」AmazonS3Exception で失敗する

最終更新日: 2019 年 11 月 21 日

Amazon EMR でアプリケーションを実行すると、アプリケーションは HTTP 404「Not Found」AmazonS3Exception で失敗します。

java.io.IOException: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Not Found (Service: Amazon S3; Status Code: 404; Error Code: 404 Not Found; Request ID: 3FEDF6CC9E4A8102; S3 Extended Request ID: 4oznJE5O44ySDrMMQ4g3F0L1+1ETqD0ANPWc0kYw0278zRX+TovNyu1ceLfcw21jasFxkkPfOuM=), S3 Extended Request ID: 4oznJE5O44ySDrMMQ4g3F0L1+1ETqD0ANPWc0kYw0278zRX+TovNyu1ceLfcw21jasFxkkPfOuM=

解決方法

このエラーは、アプリケーションが Amazon Simple Storage Service (Amazon S3) ファイルまたは存在しないパスにアクセスしようとしたことを示します。以下に、一般的な原因と解決策をいくつか示します。

  • Amazon S3 パスが間違った、または削除されました: アプリケーションを起動する前に、Amazon S3 パスを正しく入力したこと、およびパスが存在することを確認してください。
  • 他のアプリケーションまたはアカウントが同じ Amazon S3 ファイルにアクセスしている: ファイルまたはパスが別のアプリケーションまたはアカウントによって削除された可能性があります。アプリケーションを起動する前に、他のアプリケーションやアカウントが同じ Amazon S3 パスにアクティブにアクセスしているかどうかを確認します。
  • 整合性のあるビューを有効にする: Amazon S3 は、S3 バケット内の新しいオブジェクトの PUT に対して、「書き込み後の読み込み」整合性を提供します。オブジェクトを作成する前に、キー名に対して HEAD または GET リクエストを行う場合(たとえば、オブジェクトが存在するかどうかを確認するため)、Amazon S3 は「書き込み後の読み込み」の結果整合性を提供します。例えば、Amazon S3 のオブジェクトを PUT し、そのオブジェクトに対して HEAD または GET リクエストを行うと、「Not Found」エラーが表示されることがあります。これらのエラーを解決するには、EMRFS の整合性のあるビューを有効にします。詳細については、整合性のあるビューを参照してください。