Hey folks,

I've been having some trouble loading a Samza app from a private S3
bucket on a YARN node manager running in AWS Fargate. I haven't been
able to ensure the credentials are available despite having done the
following:

- placed the correct s3a keys in core-site.xml
- set AWS environment variables in the shell that launches `bin/yarn
nodemanager`
- added the AWS variables as arguments to that command
- set a JAVA_OPTS environment variable in that same shell with the
aws.accessKeyId and aws.secretKey properties set correctly
- correctly added the same Java opts property string under the
yarn.nodemanager.container-localizer.java.opts yarn-site.xml property
- set Samza's task.opts property to use these same values (as per the
Samza config)

Even with all of the above, I'm consistently seeing this error:

org.apache.hadoop.fs.s3a.AWSClientIOException: doesBucketExist on
<bucket_name>: com.amazonaws.AmazonClientException: No AWS Credentials
provided by DefaultAWSCredentialsProviderChain
  at org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:144)
  at 
org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists(S3AFileSystem.java:334)
  at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:277)
  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3288)
  ...
  at 
org.apache.samza.job.yarn.YarnClusterResourceManager.startContainer(YarnClusterResourceManager.java:617)
  at 
org.apache.samza.job.yarn.YarnClusterResourceManager.runContainer(YarnClusterResourceManager.java:578)
  at 
org.apache.samza.job.yarn.YarnClusterResourceManager.launchStreamProcessor(YarnClusterResourceManager.java:298)
  at 
org.apache.samza.clustermanager.AbstractContainerAllocator.runStreamProcessor(AbstractContainerAllocator.java:157)
  at 
org.apache.samza.clustermanager.ContainerAllocator.assignResourceRequests(ContainerAllocator.java:52)
  ..
  Caused by: com.amazonaws.AmazonClientException: No AWS Credentials
provided by DefaultAWSCredentialsProviderChain :
com.amazonaws.SdkClientException: Unable to load AWS credentials from
any provider in the chain

I'm running Hadoop 3.0.3, and this error is being produced in
something that calls itself the Container Allocator Thread. Running
`hadoop fs -ls s3a://<bucket_name>/` in the calling shell does work
correctly, so I know that the key/secret is correct (making sure to
unset any automatically-set AWS environment variables first). It looks
to me like the environment that's localizing the package doesn't have
access to the credentials in spite of all of these steps. Has anybody
come across a situation like this?

Cheers,
Malcolm

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

Reply via email to