
Azure HDInsight Cluster VM から AWS s3 バケットにアクセスしようとしています。新しいキーを生成し、.aws/credentials に追加しました。Azure VM では「aws s3 ls」は正常に動作しています。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
値: XXXXXXX
特性4:
名前:fs.s3a.session.token
値: XXXXX
最初は、spark-shellからプロパティ「fs.s3a.aws.credentials.provider」なしでs3にアクセスしようとしていました。