S3 Ошибка доступа с Emr с Spark 2.4.4 и Scala - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь получить доступ к файлу S3 в Spark на EMR с использованием кода Scala и получаю следующую ошибку

Конфигурация EMR:

Конфигурация EMR

Scala Код

    val hadoopConf = sparkContext.hadoopConfiguration
    if (baseDirectory.startsWith("s3:")) {
      hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
      hadoopConf.set("fs.s3.awsAccessKeyId", jobProperties.getAs[String](S3_ACCESS_KEY_ID))
      hadoopConf.set("fs.s3.awsSecretAccessKey", jobProperties.getAs[String](S3_SECRET_ACCESS_KEY))
    }
    org.apache.hadoop.fs.FileSystem.get(new java.net.URI(baseDirectory), hadoopConf)

ОШИБКА

20/03/28 15:18:06 ERROR Client: Application diagnostics message: User class threw exception: org.apache.hadoop.security.AccessControlException: Permission denied: s3n://r10x-tlog/occ/gzip/test_$folder$
        at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.processException(Jets3tNativeFileSystemStore.java:449)
        at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.processException(Jets3tNativeFileSystemStore.java:427)
        at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleException(Jets3tNativeFileSystemStore.java:411)
        at 

Я проверил сосуды Spark And Had oop Имел oop Библиотеки

Не могли бы вы помочь?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Вы должны использовать EMRFS вместо s3a или s3n, потому что это собственная реализация для использования S3 в качестве FS.

с использованием EMRFS, вам не нужно использовать учетные данные для использования S3. Вам просто нужно дать разрешение на EMR_EC2_DefaultRole

0 голосов
/ 19 апреля 2020

Вместо s3n используйте s3 . s3a и s3n не поддерживаются в EMR. Также убедитесь, что ваша EMR_IAM_Role имеет доступ к этой корзине s3.

...