Hadoop"无法从链中的任何提供商加载 AWS 凭证"



我的使用案例是将文件从本地Hadoop集群上传到AWS S3。 在实现它之前,我尝试执行简单的ls命令来查看来自 Hadoop 的存储桶内容。

在运行任何命令之前,我导出了这样的键

export AWS_ACCESS_KEY_ID=<AcessKeyId>
export AWS_SECRET_ACCESS_KEY=<secretekey>
export AWS_SESSION_TOKEN=<sessiontoken>

如果我使用以下命令,我能够看到存储桶内容

aws s3api list-objects --bucket <bucket_name>

但是,当我使用以下命令时

hadoop fs -Dfs.s3a.aws.credentials.provider="org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" -Dfs.s3.access.key="<Access key>" -Dfs.s3.secret.key="<Aws access key>" -Dfs.s3a.session.token="<session_token>" -libjars <path to hadoop-aws.jar file> -ls s3a://<bucket_name>/

我收到以下错误

AmazonClientException: Unable to load AWS credentials from any provider in the chain

我的问题是,即使我同时提供aws credentials作为环境变量,以及使用-Dfs.s3.access.key为什么我会看到AmazonClientException

删除fs.s3a.aws.credentials.provider选项,然后重试。如果未指定,则按顺序查询凭据提供程序类的默认列表(请参阅文档(。

最新更新