我新创建的广告管理系统使用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>
Hadoop Amazon S3页面上没有提到这一点。 Hadoop现在与S3不兼容还是我错过了配置选项?
我已尝试按照suggested on the SDK page的建议添加-Dcom.amazonaws.services.s3.enableV4
,但没有运气。我假设Hadoop没有使用亚马逊SDK。
FWIW我使用的是Apache Spark,但它使用的是Hadoop。
编辑:我找到了this Jira ticket。
答案 0 :(得分: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>/...
您可以在此处找到终结点:http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region