我可以将Hadoop与AWS4-HMAC-SHA256一起使用吗?

Joe*_*Joe 7 hadoop amazon-s3 amazon-web-services apache-spark

我新创建的存储桶使用AWS Signature Version 4.我正在尝试将它与Hadoop一起使用并获取消息:

Exception in thread "main" org.apache.hadoop.fs.s3.S3Exception:
org.jets3t.service.S3ServiceException: S3 GET failed for '/' XML Error Message:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InvalidRequest</Code>
<Message>The authorization mechanism you have provided is not supported.
         Please use AWS4-HMAC-SHA256.</Message>
</Error>
Run Code Online (Sandbox Code Playgroud)

Hadoop Amazon S3页面上没有提到这一点.Hadoop现在与S3不兼容还是我错过了配置选项?

我已经尝试-Dcom.amazonaws.services.s3.enableV4按照SDK页面上的建议添加,没有运气.我假设Hadoop不使用亚马逊SDK.

FWIW我正在使用Apache Spark,但它使用Hadoop.

编辑:我发现了这张Jira票.

小智 1

您可能正在尝试使用 s3n 获取数据,但这是行不通的。切换到 s3a 并且不要忘记包含端点:

hdfs dfs -Dfs.s3a.awsAccessKeyId=<access key ID> -Dfs.s3a.awsSecretAccessKey=<secret acces key> -Dfs.s3a.endpoint=<s3 enpoint> -ls s3a://<bucket_name>/...
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到端点:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region