AWS Задание склеивания завершается неудачно в create_dynamic_frame_from_options при чтении из корзины s3 с большим количеством файлов - PullRequest
1 голос
/ 09 апреля 2020

Данные внутри моего сегмента s3 выглядят следующим образом ... s3: //bucketName/prefix/userId/XYZ.gz

Существует около 20 миллионов пользователей, и в каждой подпапке пользователя будет 1 - 10 файлов.

Моя работа по склеиванию начинается следующим образом ...

datasource0 = glueContext.create_dynamic_frame_from_options ("s3", {'paths': ["s3: // bucketname / prefix / "], 'useS3ListImplementation': True, 'recurse': True, groupFiles ':' inPartition ',' groupSize ': 100 *1024* 1024}, format =" json ", translation_ctx =" datasource0 ")

Существует несколько оптимизаций, таких как groupFiles, groupSize & useS3ListImplementations, которые я попытался выполнить, как показано выше.

Я использую рабочие экземпляры G.2X, чтобы обеспечить максимальную память для заданий.

Это задание, однако, последовательно завершается неудачно в первой строке, с 'SDKClientException, Невозможно выполнить HTTP-запрос: Неподдерживаемая версия записи Unknown-0.0' и с 'Невозможно выполнить HTTP-запрос: Получено close_notify во время рукопожатия' err или при включении useS3ListImplementations.

Из мониторинга я наблюдаю, что для этой работы используется только один исполнитель, хотя я выделил 10 (или 20 в некоторых прогонах), и объем памяти драйвера увеличивается до 100%, а ЦП колеблется около 50%.

Я понимаю, что мои папки s3 организованы не лучшим образом. Учитывая эту структуру, есть ли способ заставить эту работу клея работать?

Моя цель - преобразовать данные json внутри этих исторических папок в паркет за один go. Любой лучший способ достижения этого также приветствуется.

...