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

时间:2014-12-12 13:40:08

标签: hadoop amazon-web-services amazon-s3 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>

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

我已尝试按照suggested on the SDK page的建议添加-Dcom.amazonaws.services.s3.enableV4,但没有运气。我假设Hadoop没有使用亚马逊SDK。

FWIW我使用的是Apache Spark,但它使用的是Hadoop。

编辑:我找到了this Jira ticket

1 个答案:

答案 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