Łukasz Piepiora created SPARK-11353:
---------------------------------------

             Summary: Writing to S3 buckets, which only support 
AWS4-HMAC-SHA256 fails
                 Key: SPARK-11353
                 URL: https://issues.apache.org/jira/browse/SPARK-11353
             Project: Spark
          Issue Type: Bug
          Components: Input/Output
    Affects Versions: 1.5.1, 1.3.1
            Reporter: Łukasz Piepiora


For certain regions like for example Frankfurt (eu-central-1) AWS supports only 
[AWS Signature Version 
4|http://docs.aws.amazon.com/general/latest/gr/rande.html#d0e3788].

Currently Spark is using jets3t library in version 0.9.3, which throws an 
exception when code tries to save files in S3 in eu-central-1.

{code}
Caused by: java.lang.RuntimeException: Failed to automatically set required 
header "x-amz-content-sha256" for request with entity 
org.jets3t.service.impl.rest.httpclient.RepeatableRequestEntity@1e4bc601
        at 
org.jets3t.service.utils.SignatureUtils.awsV4GetOrCalculatePayloadHash(SignatureUtils.java:238)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.authorizeHttpRequest(RestStorageService.java:762)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.performRequest(RestStorageService.java:324)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.performRequest(RestStorageService.java:277)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.performRestPut(RestStorageService.java:1143)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.createObjectImpl(RestStorageService.java:1954)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.putObjectWithRequestEntityImpl(RestStorageService.java:1875)
        at 
org.jets3t.service.impl.rest.httpclient.RestStorageService.putObjectImpl(RestStorageService.java:1867)
        at org.jets3t.service.StorageService.putObject(StorageService.java:840)
        at org.jets3t.service.S3Service.putObject(S3Service.java:2212)
        at org.jets3t.service.S3Service.putObject(S3Service.java:2356)
        ... 23 more
Caused by: java.io.IOException: Stream closed
        at 
java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
        at java.io.BufferedInputStream.reset(BufferedInputStream.java:446)
        at 
org.jets3t.service.utils.SignatureUtils.awsV4GetOrCalculatePayloadHash(SignatureUtils.java:236)
        ... 33 more
{code}

There is a newer version of jets3t 0.9.4, which seems to fix this issue 
(http://www.jets3t.org/RELEASE_NOTES.html).

Therefore I suggest to upgrade jets3t dependency from 0.9.3 to 0.9.4 for Hadoop 
profiles.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to