我的 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 在将新对象放入 (PUT) 您的 S3 存储桶时提供“写入后读取”一致性。如果您在创建对象前向键名发出 HEAD 或 GET 请求(如,查找对象是否存在),Amazon S3 将提供“写入后读取”最终一致性。例如,如果您将对象放入 (PUT) Amazon S3,然后立即向该对象发起 HEAD 或 GET 请求,您可能会遇到 “Not Found” 错误。要解决这些错误,启用 EMRFS 一致视图。如需更多信息,见一致视图