amazon-web-services - 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
选项并重试。如果未指定,则按顺序查询凭据提供程序类的默认列表(请参阅文档)。
推荐阅读
- python - 如何在 python 中使用 asyncSSH 库通过 ssh 正确发送 ~m
- javascript - Javascript 检查字符串的一部分是否包含在枚举值中
- python - 将熊猫数据框放入嵌套子字典
- python - 在 Heroku 上部署 playwright-python
- logging - 如何在手动创建的记录器(dotnet core 3.1)中配置 LogLevel
- python - 在django表单中成功提交表单后如何将address.pk作为参数传递?
- python - Telegram Bot API:如何使用 CallbackQuery.data 获取 InlineKeyboardButton 的文本?
- mysql - 如何查找 SQL 中缺勤或迟到的学生的总百分比?
- scala - Kafka Streams:无法解析重载方法
- tableau-api - 每个粒度的高价值