You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@spark.apache.org by Marius <m....@gmail.com> on 2017/11/15 20:48:51 UTC

[Spark Core]: S3a with Openstack swift object storage not using credentials provided in sparkConf

Hey,

i am currently using Spark 2.2.0 for Hadoop 2.7.x in in a Standalone 
cluster for testing. I want to Access some files to share them one the 
nodes on the cluster using addFiles. As local directories are not 
supported for this i want to use s3 to do the job.

In contrast to nearly everything i have found on the internet i am using 
a self hosted openstack cluster using swift as object storage. Accessing 
swift directly would be fine, too, but all tutorials i have found seem 
to use keystone v2, whilst our deployment uses the v3 version.

I added the following jars:

aws-java-sdk-1.7.4.jar

hadoop-aws-2.7.3.jar

as jars and to the classpath of each executor and driver.

When i try to access an s3 bucket the following exception occurs: 
"Unable to load AWS credentials from any provider in the chain"

This is my config:

conf.set("spark.hadoop.fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
conf.set("fs.s3a.endpoint", "https://foo/swift/v1")
conf.set("fs.s3a.access.key", System.getenv("s3Access"))
conf.set("fs.s3a.secret.key", System.getenv("s3Secret"))

 From my understanding the s3 handler is not using the provided credentials.

Has anyone an idea how to fix this?


Cheers and thanks in Advance

Marius