Как настроить EMR для чтения из корзины S3 по идентификатору доступа пользователя и секретному ключу - PullRequest
0 голосов
/ 05 мая 2020

Есть ли способ читать из корзины S3, которой нет в вашей учетной записи AWS, и вы не можете взять на себя роль, чтобы получить к ней доступ - особенно в EMR.

В простом случае Had oop или Spark вы можете указать:

fs.s3.access.key=<accessKey>
fs.s3.secret.ket=<secretKey>

в конфигурации Had oop с помощью SimpleAWSCredentialsProvider. Это работает локально, однако при попытке запустить EMR, который использует EMRS, я не могу заставить это работать, я всегда получаю 403:

com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403

У меня есть только идентификатор доступа пользователя IAM и Секретный ключ для чтения из корзины, мой профиль экземпляра, который создает экземпляры EMR EC2, не имеет разрешений на чтение из корзины.

Чтобы дать больше контекста, я читаю и пишу из нескольких корзин s3 в учетной записи EMR предоставляется, но есть одна корзина, которая живет вне, к которой я пытаюсь получить доступ.

EDIT

Это для приложения Scala Spark, в которое я пытаюсь загрузить содержимое S3 ведро непосредственно в фрейм данных.

Ответы [ 2 ]

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

вы, к сожалению, пытаетесь использовать параметры конфигурации для Apache коннектора S3A, но работаете на Amazon EMR, который имеет собственный коннектор и свои собственные ключи конфигурации.

Посмотрите, какие есть варианты и установите их в своей работе вместе с параметрами s3a

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

можете ли вы попробовать использовать библиотеку «boto3» в pyspark, чтобы узнать, можете ли вы прочитать файл.

что-то вроде этого:

s3 = boto3.client ( 's3', aws_access_key_id = ACCESS_KEY, aws_secret_access_key_id = SECRET_KEY))

для корзины в s3.buckets.all (): ... print (bucket.name)

Ссылка на образец: https://www.datastackpros.com/2020/05/upload-file-to-s3-bucket-using-python.html

Дополнительные функции boto3: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/collections.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...