Ошибка неверного имени хоста при подключении к приемнику s3 при использовании секретного ключа с косой чертой

У меня есть forward slash в секретном ключе.

Когда я пытаюсь подключиться к раковине s3

Caused by: java.lang.IllegalArgumentException: Invalid hostname in URI s3://xxxx:xxxx@jelogs/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 ответа

Решение

В итоге я создаю новый секретный ключ без косых черт. Это известная проблема, и генерация нового ключа является единственным решением.

samthebest решение работает, вам просто нужно добавить "" вокруг клавиш. Вот как это использовать:

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

Использование

-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>
Другие вопросы по тегам