Я сгенерировал временные учетные данные с помощью MFA, а затем на своем локальном компьютере я попытался перечислить все сегменты
aws s3 ls --profile aws-temp s3://bucket-name/ --recursive --human-readable --summarize
Это работает нормально, что означает мои учетные данные (ключ доступа, секретный ключ и токен сеанса) верны.
Проблема возникает, когда я пытаюсь запустить то же самое из Had oop, чтобы перечислить все сегменты
sudo -u hdfs hadoop fs -Dfs.s3a.access.key=accesskey \
-Dfs.s3a.secret.key=secretkey \
-Dfs.s3a.session.token=session-token \
-Dfs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider
-ls s3a://bucket-name
Я получаю следующую ошибку:
com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records.
что не имеет смысла, потому что я вижу, что учетные данные верны, когда я использую was cli на моем локальном компьютере
PS Я пытался записать все это в файл конфигурации, а затем использовать что-то вроде этого
sudo -u hdfs hadoop fs \
-D hadoop.security.credential.provider.path=jceks://file-path/s3-temp.jceks \
-ls s3a://bucket-name/
Но это дало мне следующую ошибку:
com.cloudera.com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain
У меня в основном есть куча папок на Cloudera, которые я хочу переместить в ведра S3, но до сих пор я не могу даже доступ к сегментам S3 Это документация, которой я следил: https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.5/bk_cloud-data-access/content/about.html
Спасибо,