Запись данных в S3 через Spark Data Frame и в масштабе - проблема с подключением s3, вызванная ошибкой замедления s3 503 - PullRequest
0 голосов
/ 23 октября 2018

Мы пытаемся читать и записывать данные в S3 в искре, используя кластеры AWS EMR.И во время этого процесса, когда мы масштабировали выполнение, мы столкнулись с некоторыми проблемами.Когда мы пытаемся обработать одно и то же задание для одной четверти данных, мы не замечаем этой проблемы, но когда мы масштабируем ее для параллельного запуска нескольких четвертей данных, случайным образом для одного или нескольких четвертей данных, мы начинаем видеть задания запускасбой при записи данных в S3.Затем мы пошли дальше, чтобы глубже понять проблему, то есть, когда мы поняли, что искра выбрасывает проблему, когда она записывает данные в S3, и это вызвано S3 503 Замедление ошибки.

Ошибка замедления наступит только тогда, когда мы превысили S3 TPS данного пути.И предложение от S3 заключается в добавлении случайных значений хеша к пути s3 во время записи.Мы попробовали это с помощью partition by, но мы узнали, что некоторые хеш-значения (xy, двухзначные хеш-значения) будут работать лучше.Так кто-нибудь сталкивался с подобной проблемой, и если да, то могу ли я узнать, как вы преодолели эту проблему?

Ожидание!

Криш

1 Ответ

0 голосов
/ 24 октября 2018

S3 клиент должен регулировать количество ошибок;Удивило EMR, так как AWS SDK, который все используют, распознает 503, откатится и повторите попытку.

Вероятно, будет параметр конфигурации для его установки (для S3a: //, его fs.s3a.attempts.maximum)

Если вы используете разъем EMR s3: //, вынадо искать их вариант

...