3

我正在尝试从另一个 AWS 账户中的 s3 存储桶读取文件。

脚步:

  1. aws sts assume-role使用命令生成访问 id、访问密钥和令牌
  2. 设置以下变量:

    export AWS_ACCESS_KEY_ID=
    export AWS_SECRET_ACCESS_KEY=
    export AWS_SESSION_TOKEN=
    
  3. aws s3 ls s3://...

  4. 在spark-shell中读取文件

    sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "XXX")
    sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "XXX")
    sc.hadoopConfiguration.set("fs.s3a.session.token", "XXX")
    spark.read.parquet("file location")
    

直到第 3 步,它的工作正常。

我无法在 spark-shell 中读取文件。我正在使用火花版本: 2.4.3。请让我知道我错过了什么。任何帮助,将不胜感激。

错误日志:

    Caused by: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records. 
4

1 回答 1

0

似乎您的凭据已被删除。

您还可以查看: https ://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security-cross-account.html

于 2021-03-25T20:36:48.600 回答