我想從S3複製文件到我在Amazon EC2上的hadoop HDFS。從S3複製Hadoop distcp:簽名不匹配錯誤
,我使用的命令是:
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訪問密鑰和祕密密鑰。我檢查了我的AWS賬戶,他們是一樣的。我使用相同的AWS訪問密鑰和密鑰來登錄到我的EC2羣集。我也嘗試使用core-site.xml,但這也沒有幫助。
感謝, 拉吉夫
我還發現你需要你的s3 url以s3n開頭而不是s3 – viper
這對我有效:http://stackoverflow.com/questions/14681938/invalid-hostname-error-when-connecting-to- s3-sink-when-using-secret-key-having-f – Roshini