Подключение Apache Drill к Amazon S3 с помощью DefaultAWSCredentialsProviderChain

Я пытаюсь подключить apache Drill к моему aws s3 без указания ключа доступа и секретного ключа в конфигурации, поэтому я добавляю

"fs.s3a.aws.credentials.provider": "com.amazonaws.auth.DefaultAWSCredentialsProviderChain"

в конфигурации, надеясь, что он получит учетные данные из файла профилей учетных данных по умолчанию на моем ПК и получит роль IAM при его развертывании.

Когда я указываю ключ доступа и секретный ключ в конфигурации, соединение работает нормально, но после того, как я перехожу в конфигурацию, чтобы использовать DefaultAWSCredentialsProviderChain, это не сработало.

Дрель показывает это, когда я пытаюсь использовать хранилище s3

Error: SYSTEM ERROR: AmazonClientException: Unable to load AWS credentials from any provider in the chain

Я могу писать в s3, используя DefaultAWSCredentialsProviderChain с org.apache.parquet.hadoop.ParquetWriter, и могу читать ведро s3 с помощью awscli без каких-либо проблем

вот моя конфигурация плагина хранилища

{
  "type": "file",
  "connection": "s3a://my-bucket",
  "config": {
    "fs.s3a.endpoint": "s3.REGION.amazonaws.com",
    "fs.s3a.aws.credentials.provider": "com.amazonaws.auth.DefaultAWSCredentialsProviderChain"
  },
  "workspaces": {
    "tmp": {
      "location": "/tmp",
      "writable": true,
      "defaultInputFormat": null,
      "allowAccessOutsideWorkspace": false
    },
    "root": {
      "location": "/",
      "writable": false,
      "defaultInputFormat": null,
      "allowAccessOutsideWorkspace": false
    }
  },
  "formats": {
    "parquet": {
      "type": "parquet"
    }
  },
  "enabled": true
}

person johan avril    schedule 23.09.2019    source источник


Ответы (1)


Apache Drill не поддерживает ~/.aws/credentials, но поддерживает Hadoop CredentialProvider API. Чтобы использовать его, вам необходимо создать внешний поставщик учетных данных и установите свойство "hadoop.security.credential.provider.path" (указывающее на поставщика) в разделе "config" подключаемого модуля хранилища Drill S3.

Кроме того, вы можете сохранить свои учетные данные в Drill core-site.xml.

person Bohdan    schedule 26.09.2019