首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hadoop distcp未提供AWS凭据

Hadoop distcp未提供AWS凭据
EN

Stack Overflow用户
提问于 2017-11-23 21:16:57
回答 3查看 6.4K关注 0票数 5

我有一个很大的S3files存储桶,我想放在HDFS上。考虑到涉及的文件数量,我更喜欢的解决方案是使用“分布式复制”。然而,由于某些原因,我无法让hadoop distcp接受我的亚马逊S3凭据。我使用的命令是:

代码语言:javascript
运行
复制
hadoop distcp -update s3a://[bucket]/[folder]/[filename] hdfs:///some/path/ -D fs.s3a.awsAccessKeyId=[keyid] -D fs.s3a.awsSecretAccessKey=[secretkey] -D fs.s3a.fast.upload=true

然而,这就好像没有'-D‘参数一样。

代码语言:javascript
运行
复制
ERROR tools.DistCp: Exception encountered
java.io.InterruptedIOException: doesBucketExist on [bucket]: com.amazonaws.AmazonClientException: No AWS Credentials provided by BasicAWSCredentialsProvider EnvironmentVariableCredentialsProvider SharedInstanceProfileCredentialsProvider : com.amazonaws.SdkClientException: Unable to load credentials from service endpoint

我已经查看了hadoop distcp文档,但是在那里找不到解决方案来解释为什么它不工作。我尝试过将-Dfs.s3n.awsAccessKeyId作为一种旗帜,但也不起作用。我读到过显式传递凭据并不是一种好的做法,所以也许这只是一些外来者的建议,可以用其他方式来做?

如何将S3凭据与distcp一起传递?有人知道吗?

EN

Stack Overflow用户

发布于 2021-03-02 02:01:20

Koen的回答对我很有帮助,这是我的版本。

代码语言:javascript
运行
复制
hadoop distcp \
  -Dfs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider \
  -Dfs.s3a.access.key=[accesskey] \
  -Dfs.s3a.secret.key=[secretkey] \
  -Dfs.s3a.session.token=[sessiontoken] \
  -Dfs.s3a.fast.upload=true \
  hdfs:///some/path s3a://[bucket]/[folder]/[filename]
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47456479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档