Spark - Как измерить время выполнения этапов в DAG?

У меня есть приложение Spark, которое имеет 4-5 рабочих мест. Я знаю, какая работа занимает больше времени, потому что это очевидно. Эта работа имеет DAG, как это:

wholeTextFiles -> mapToPair -> flatMapToPair -> перераспределение -> mapPartitionsToPair -> карта -> saveAsTextFile

Однако я не знаю, какое преобразование занимает больше времени в этом задании, поскольку весь DAG вычисляется только в действии SaveAsTextFile.

Как я могу определить, какая часть моего приложения является узким местом?

Как вы думаете, использование сбора после каждого преобразования - это хорошая идея (я могу проследить время выполнения из веб-интерфейса)? Если да, должен ли я использовать только один сборщик и измерять время выполнения различных преобразований при каждом запуске или я могу поместить сбор после каждого преобразования и измерять время выполнения их в одном прогоне?

0 ответов