#apache-flink #apache-beam #amazon-emr
Вопрос:
Я использую Apache Beam для запуска пакетных конвейеров на Flink, работающих на AWS EMR.
Трубопроводы луча создаются и передаются в давно работающий кластер Flink. Однако я вижу, что есть затраты, связанные с построением графика работы и отправкой его в EMR, что занимает постоянно более 2 минут.
Я хочу сократить это время, и мне было интересно, есть ли способ кэшировать/предотвратить создание трубопроводов Beam с каждым запуском работы с драйверами.
График работы немного сложен, поэтому время в 2 минуты оправдано. Просто рассматриваю способы уменьшить/устранить это каждый раз.
Комментарии:
1. Было бы полезно иметь разбивку того, где на самом деле находятся затраты, например, при строительстве трубопровода, переводе или фактической отправке в EMR? Или это повторная загрузка зависимостей (например, файлов jar) каждый раз?
2. Стоимость составляет около 30-40 секунд при строительстве трубопровода и отдыхе при отправке в EMR
3. Я не знаю, как ускорить отправку в EMR, хотя моей первой догадкой было бы посмотреть, есть ли избыточные артефакты, которые загружаются каждый раз.
4. Для построения конвейера вы могли бы посмотреть, есть ли вычисления, которые можно кэшировать/амортизировать по вызовам. Само строительство трубопровода луча должно быть довольно быстрым (графики с тысячами PTransforms все равно должны быть субсекундными).