2013-02-04 47 views
4

我有一個forward slash aws密鑰。使用具有正斜槓的密鑰連接到s3接收器時出現無效主機名錯誤

當我嘗試連接到S3沉

Caused by: java.lang.IllegalArgumentException: Invalid hostname in URI s3://xxxx:[email protected]/je.1359961366545 
    at org.apache.hadoop.fs.s3.S3Credentials.initialize(S3Credentials.java:41) 

當我編碼向前%2F斜線,我得到

The request signature we calculated does not match the signature you provided. Check your key and signing method. 

我應該如何編碼我的祕密密鑰。

回答

3

我最終創建了一個沒有正斜槓的新密鑰。這是一個已知問題,生成新密鑰只是解決方案。

2

使用

-Dfs.s3n.awsAccessKeyId=<your-key> -Dfs.s3n.awsSecretAccessKey=<your-secret-key> 

例如

hadoop distcp -Dfs.s3n.awsAccessKeyId=<your-key> -Dfs.s3n.awsSecretAccessKey=<your-secret-key> -<subsubcommand> <args> 

hadoop fs -Dfs.s3n.awsAccessKeyId=<your-key> -Dfs.s3n.awsSecretAccessKey=<your-secret-key> -<subsubcommand> <args> 
+4

請進一步解釋你的答案,不要只發布片段。 –

4

samthebest解決方案的工作,你只需要添加 「」 周圍的按鍵。這裏如何使用它:

hadoop distcp -Dfs.s3a.awsAccessKeyId="yourkey" -Dfs.s3a.awsSecretAccessKey="yoursecret" <your_hdfs_path> s3a://<your-bucket> 
相關問題