Сброс Hadoop AWS ключей для загрузки в другую корзину S3 под другим именем пользователя - PullRequest
0 голосов
/ 28 сентября 2018

Извините за ужасный заголовок вопроса, но вот мой сценарий

  1. У меня есть блокнот pyspark databricks, в который я загружаю другие блокноты.
  2. Один из этих блокнотов устанавливает некоторое красное смещениеконфигурация для чтения данных из красного смещения (некоторые временные интервалы S3).Я не могу изменить ни одну из этих конфигураций.
  3. При этой конфигурации оба возвращают True.Это полезно на шаге № 5

sc._jsc.hadoopConfiguration (). Get ("fs.s3n.awsAccessKeyId") == Нет sc._jsc.hadoopConfiguration (). Get ("fs.s3n.awsSecretAccessKey") == Нет

У меня есть модель Apache Spark, которую мне нужно сохранить в моем контейнере S3, который отличается от настроенного для красного смещения. Я выбираю другие объекты и сохраняю их в AWS с помощью boto3, и он работает нормально, ноЯ не думаю, что мы можем мариновать модели Apache, как другие объекты.Поэтому я должен использовать метод сохранения модели с URL-адресом S3, и для этого я устанавливаю учетные данные aws следующим образом, и это работает (если никто в одном кластере не работает с конфигурациями AWS).

sc._jsc.hadoopConfiguration (). Set ("fs.s3n.awsAccessKeyId", AWS_ACCESS_KEY_ID) sc._jsc.hadoopConfiguration (). Set ("fs.s3n.awsSecretAccessKey")AWS_SECRET_ACCESS_KEY)

После сохранения этой модели мне также нужно прочитать другие данные из красного смещения, и здесь происходит сбой со следующей ошибкой.То, что я думаю, - то, что конфигурация красного смещения S3 изменена с вышеупомянутым кодом.

org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 0 на этапе 1844.0 не выполнено 4 раза, последний сбой: потерянное задание 0.3 на этапе 1844.0 (TID 63816,10.0.63.188, исполнитель 3): com.amazonaws.services.s3.model.AmazonS3Exception: запрещено (услуга: Amazon S3; код состояния: 403; код ошибки: 403 запрещен; идентификатор запроса: 3219CD268DEE5F53; расширенный идентификатор запроса S3: rZ5 /zi2B + AsGuKT0iW1ATUyh9xw7YAt9RULoE33WxTaHWUWqHzi1 + 0sRMumxnnNgTvNED30Nj4o =), S3 Расширенная Request ID: rZ5 / zi2B + AsGuKT0iW1ATUyh9xw7YAt9RULoE33WxTaHWUWqHzi1 + 0sRMumxnnNgTvNED30Nj4o =

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

Что я тоже не понимаю, так это то, что изначально значения aws были None, и когда я пытаюсь выполнить сброс с помощью None самостоятельно, возвращается сообщение об ошибке:

The value of property fs.s3n.awsAccessKeyId must not be null

.Обходной путь, при котором я сохраню модель локально на блоках данных, а затем сделаю zip-файл и загрузлю его на S3, но все же это всего лишь патч.Я хотел бы сделать это надлежащим образом.

Извините за использование кавычки для кода, потому что по какой-то причине он не работал для многострочного кода

Заранее спасибо !!!

1 Ответ

0 голосов
/ 28 сентября 2018

повторно импортируйте записную книжку, которая настраивает подключение в режиме красного смещения.Или найдите, где он установлен, и скопируйте этот код.

Если у вас нет прав на изменение записываемых вами записных книжек, я думаю, у вас нет прав для установки ролей в кластере.Если вы используете роли, то вам не нужны ключи aws.

...