#apache-spark #spark-ui
#apache-искра #spark-пользовательский интерфейс #apache-spark #spark-ui
Вопрос:
Я запускаю задание Spark и пытаюсь настроить его быстрее. Странно, что общее время безотказной работы составляет 1,1 часа, но я суммирую всю продолжительность работы. Это займет всего 25 минут. Мне любопытно, почему общее время безотказной работы в Spark UI не равно сумме всей продолжительности задания?
Это информация о пользовательском интерфейсе Spark. Общее время безотказной работы составляет 1,1 часа.
Общее время безотказной работы
Но общая продолжительность всех заданий составляет около 25 минут Продолжительность всего задания
большое вам спасибо
Ответ №1:
Total uptime
время с момента запуска приложения Spark или драйвера. Jobs durations
это время, затраченное на обработку задач на RDDs/DataFrames
.
Все инструкции, которые выполняются программой драйвера, вносят вклад в общее время безотказной работы, но не обязательно в продолжительность задания. Например:
val rdd: RDD[String] = ???
(0 to 100).foreach(println) // contribute in total uptime not in job duration
Thread.sleep(10000) // contribute in total uptime not in job duration
rdd.count // contribute in total uptime as well as in job duration
Другим примером является то, как работает соединитель spark-redshift. Каждое выполнение запроса (DAG) при чтении или записи из redshift выдает COPY
/ UNLOAD
команду для записи данных в / из s3.
Во время этой операции исполнители не выполняют никакой работы, и программа-драйвер заблокирована до завершения передачи данных в s3. Это время добавится к общему времени безотказной работы, но не будет отображаться в Job duration
. Дальнейшие действия с DataFrame
(который теперь внутренне считывает файлы из s3) добавят к Job duration