AWS Glue Job работает слишком медленно

У нас есть следующее требование:

Ежегодные XML-файлы (размером от 15 до 20 ГБ) с 1990 по 2018 год.

Еженедельные файлы XML (размером от 3 до 6 ГБ), содержащие обновленные записи XML для любых годовых данных с 1990 по 2018 год.

Нам нужно запустить задание ETL, чтобы выполнить слияние еженедельных и годовых данных в S3 и предоставить интегрированные данные для последующих приложений локально в виде API.

Путь, по которому мы идем, - это AWS Glue для слияния ETL и потенциально Athena для предоставления результатов SQL-запросов для последующих приложений.

Я пытаюсь объединить ETL несколько XML (Insert / Update) в S3 с помощью AWS Glue и Pyspark - если быть точным, я делаю следующие шаги:

1) Создайте динамические фреймы данных из каталога Glue (из нескольких исходных данных XML) [всего 3 файла размером около 10 ГБ]

Для каждого года данных выполните 2) Преобразование динамического фрейма данных в фрейм данных Spark 3) Используйте методы Join (leftanti) и Union для объединения данных 4) Запишите файлы JSON (объединенные в один файл за год)

Задания выполняются в течение 2 часов и из журналов - что, на мой взгляд, слишком долго. Нам необходимо увеличить размер обрабатываемого файла примерно до 400+ ГБ, и я не уверен, правильно ли я его кодирую.

a)

Я замечаю, что следующее заявление появлялось почти в течение большей части двух часов.

18/02/24 22:46:56 INFO Client: отчет о приложении для application_1519512218639_0001 (состояние: РАБОТАЕТ)

18/02/24 22:46:56 DEBUG Client: токен клиента: н / д диагностика: н / д ApplicationMaster host: 172.31.58.135 ApplicationMaster RPC порт: 0 очередь: время начала по умолчанию: 1519512404681 конечный статус: UNDEFINED URL отслеживания: http://ip-172-31-62-4.ec2.internal:20888/proxy/application_1519512218639_0001/ пользователь: root

Означает ли это, что задание действительно выполняется и требует времени для обработки (или) ожидает ресурсов?

б) В моем коде я также пробовал использовать .cache (), предполагая, что это выполнит логику в памяти. Но это не влияет на затраченное время.

c) Журналы показывают, что данные копируются на узлы hdfs и задачи выполняются. Насколько это отличается от выполнения аналогичного кода на EMR?

г) Есть ли другие предложения по улучшению работы?


person Sundar    schedule 26.02.2018    source источник
comment
Вы пытались настроить конечную точку разработки и проверить пользовательский интерфейс Spark? Он может показать вам, что происходит с вашей работой.   -  person Natalia    schedule 03.03.2018
comment
Спасибо за предложение - попробую и обновлю!   -  person Sundar    schedule 21.03.2018
comment
@ Наталия, как мне просмотреть пользовательский интерфейс Spark на конечной точке разработчика?   -  person human    schedule 12.07.2018


Ответы (1)


Вы пытались увеличить количество DPU. Какова текущая конфигурация DPU? Посетите сайт aws.amazon.com/glue/faqs для увеличения размера и улучшения производительность заданий AWS Glue ETL? Они высказали предложения по увеличению числа ПНН. Обратите внимание, что существуют ограничения на количество DPU, которые можно использовать для конечных точек ETL / DEV, за пределами которых вам необходимо обращаться в службу поддержки AWS.

person Yuva    schedule 27.02.2018
comment
По умолчанию задание выполняется с 10 DPU, и я считаю, что этого должно быть более чем достаточно, чтобы обеспечить приличную пропускную способность. Сказав это, я все еще новичок в этой области, поэтому здесь я могу ошибаться. Мне интересно, требуется ли время для выделения узлов до того, как он действительно запустится. Это возможность? - person Sundar; 28.02.2018