Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-18073 S3A: Upgrade AWS SDK to V2
  3. HADOOP-18743

convert declarations of AWS v1 SDK EnvironmentVariableCredentialsProvider to v2 version

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None
    • None

    Description

      As I play with the v2 sdk I've cut the v1 sdk from the tools/lib and now I'm getting stack traces about missing class EnvironmentVariableCredentialsProvider

      java.io.IOException: From option fs.s3a.aws.credentials.provider java.lang.ClassNotFoundException: Class com.amazonaws.auth.EnvironmentVariableCredentialsProvider not found
              at org.apache.hadoop.fs.s3a.auth.AwsCredentialListProvider.loadAWSProviderClasses(AwsCredentialListProvider.java:128)
              at org.apache.hadoop.fs.s3a.auth.AwsCredentialListProvider.buildAWSProviderList(AwsCredentialListProvider.java:167)
              at org.apache.hadoop.fs.s3a.auth.AwsCredentialListProvider.createAWSCredentialProviderSet(AwsCredentialListProvider.java:102)
              at org.apache.hadoop.fs.s3a.S3AFileSystem.bindAWSClient(S3AFileSystem.java:945)
              at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:597)
              at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3595)
              at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:171)
              at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3696)
              at org.apache.hadoop.fs.FileSystem$Cache.getUnique(FileSystem.java:3653)
              at org.apache.hadoop.fs.FileSystem.newInstance(FileSystem.java:608)
              at org.apache.hadoop.fs.store.diag.StoreDiag.executeFileSystemOperations(StoreDiag.java:753)
       
      this provider is listed in the fs.s3a.aws.credentials.provider chain
      
      

      <property>
      <name>fs.s3a.aws.credentials.provider</name>
      <value>
      org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider,
      org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider,
      com.amazonaws.auth.EnvironmentVariableCredentialsProvider,
      org.apache.hadoop.fs.s3a.auth.IAMInstanceCredentialsProvider
      </value>
      ...

      
      

      Ideally we should remove all v1 dependencies, explicitly (here) and implicitly.

      maybe for the env vars, we should consider adding our own env var provider which could go into branch-3.3 now as a single patch, which can then be cherrypicked by anyone who wants it in older releases; the v2 version will work with the new api

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              stevel@apache.org Steve Loughran
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: