【问题标题】:GCS Bucket HMAC randomly 403 ForbiddenGCS Bucket HMAC 随机 403 Forbidden
【发布时间】:2022-11-12 06:40:30
【问题描述】:

我正在使用 pyspark 从谷歌云存储桶中读取镶木地板文件。一切正常,直到我尝试从不同的存储桶中获取数据 - 3 个文件。 阅读第三个文件时,我得到:

原因:com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: null; S3 Extended Request ID: null), S3 Extended Request ID : 无效的

如果我改变我正在阅读的文件的顺序(例如第三个是第一个),一切都很好。

我的火花设置:

        spark_session.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.access.key", configuration.user)
        spark_session.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.secret.key", configuration.password)
        spark_session.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.endpoint", configuration.endpoint)
        spark_session.sparkContext._jsc.hadoopConfiguration().set(
            "fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem"
        )
        spark_session.sparkContext._jsc.hadoopConfiguration().set("fs.s3a.path.style.access", "true")

我在用: hadoop-aws-3.2.0.jar aws-java-sdk-bundle-1.11.704.jar spark-hadoop-cloud_2.13-3.2.0.jar

【问题讨论】:

    标签: apache-spark amazon-s3 google-cloud-platform pyspark google-cloud-storage


    【解决方案1】:

    是的,我找到了解决方案。我错误地设置了存储桶访问权限:

       spark_session.sparkContext._jsc.hadoopConfiguration().set(f"fs.s3a.bucket.{bucket_name}.endpoint", configuration.endpoint)
        spark_session.sparkContext._jsc.hadoopConfiguration().set(f"fs.s3a.bucket.{bucket_name}.access.key", configuration.user)
        spark_session.sparkContext._jsc.hadoopConfiguration().set(f"fs.s3a.bucket.{bucket_name}.secret.key", configuration.password)
    

    请记住,孩子们,8 小时的调试可以为您节省 0.5 小时的文档阅读时间。

    使用 Per-Bucket Configuration 配置不同的 S3 存储桶 可以使用不同的 S3A 客户端配置访问不同的 S3 存储桶。这允许不同的端点、数据读取和写入策略以及登录详细信息。 除了一小组不可修改的值(当前为 fs.s3a.impl)之外的所有 fs.s3a 选项都可以基于每个存储桶进行设置。通过替换 fs.s3a 设置存储桶特定选项。带有 fs.s3a.bucket.BUCKETNAME. 的选项的前缀,其中 BUCKETNAME 是存储桶的名称。 连接到存储桶时,所有显式设置的选项都将覆盖基本 fs.s3a。价值观。

    https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/index.html#Storing_secrets_with_Hadoop_Credential_Providers

    【讨论】:

      猜你喜欢
      • 2016-07-20
      • 2015-02-27
      • 2018-04-15
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 2015-12-05
      • 2011-10-16
      • 2015-04-03
      相关资源
      最近更新 更多