Почему общее время безотказной работы в Spark UI не равно сумме всей продолжительности задания

#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