【发布时间】:2013-08-05 16:02:01
【问题描述】:
我正在尝试将文件从 S3 复制到我在 Amazon EC2 上的 hadoop HDFS。
我使用的命令是:
bin/hadoop distcp s3://<awsAccessKeyId>:<awsSecretAccessKey>@<bucket_name>/f1 hdfs://user/root/
- f1 是文件名
- 我也把它改成了 s3n 看看它是否有效,但它没有。
- 我将秘密访问密钥中的正斜杠替换为 %2F
我得到的错误是:SignatureDoesNotMatch
org.jets3t.service.S3ServiceException: S3 GET failed for '/%2Ff1'
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<StringToSignBytes>...</StringToSignBytes>
<RequestId>...</RequestId>
<HostId>..</HostId>
<SignatureProvided>NsefW5en6P728cc9llkFIk6yGc4=\
</SignatureProvided>
<StringToSign>GETMon, 05 Aug 2013 15:28:21 GMT/<bucket_name>/%2Ff1</StringToSign>
<AWSAccessKeyId><MY_ACCESS_ID><\ /AWSAccessKeyId></Error>
我只有一个 AWS 访问密钥 ID 和密钥。我检查了我的 AWS 账户,它们是一样的。我使用相同的 AWS 访问密钥和密钥登录我的 EC2 集群。我也尝试过使用 core-site.xml,但这也没有帮助。
谢谢, 拉吉夫
【问题讨论】:
-
我还发现你需要你的 s3 url 以 s3n 而不是 s3 开头
标签: hadoop amazon-web-services amazon-s3 hdfs