
我正在嘗試從 Azure HDInsight 叢集虛擬機器存取 AWS s3 儲存桶。我產生了新金鑰並新增到 .aws/credentials 中。 「aws s3 ls」在 Azure VM 中運作良好。如果我執行 hadoop distcp 或在 Spark-shell 中讀取 s3 文件,我會收到 403 錯誤「您提供的 AWS 存取金鑰 ID 在我們的記錄中不存在。」。我確實嘗試匯出 AWS_SESSION_TOKEN、AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。但沒有運氣。請幫我解決這個問題。
答案1
我找到了解決此問題的方法。我在 core-site.xml 中新增了以下屬性。
屬性1:
名稱:fs.s3a.aws.credentials.provider
值:org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider
屬性2:
名稱:fs.s3a.access.key
值:XXXXXXXXX
屬性3:
名稱:fs.s3a.secret.key
值:XXXXXX
屬性4:
名稱:fs.s3a.session.token
值:XXXXX
最初我試圖在沒有 Spark-shell 屬性「fs.s3a.aws.credentials.provider」的情況下存取 s3