Использование расширенного сервера журнала Apache Spark для отладки и диагностики приложений Apache Spark

В этой статье содержатся рекомендации по использованию расширенного сервера журнала Apache Spark для отладки и диагностики завершенных и запуска приложений Apache Spark.

Доступ к серверу журнала Apache Spark

Сервер истории Apache Spark — это веб-интерфейс для выполненных и выполняющихся приложений Spark. Вы можете открыть веб-интерфейс Apache Spark из блокнота индикатора выполнения или страницы сведений о приложении Apache Spark.

Откройте веб-интерфейс Spark из записной книжки индикатора прогресса

При активации задания Apache Spark кнопка открытия веб-интерфейса Spark находится внутри параметра "Дополнительно" в индикаторе хода выполнения. Выберите веб-интерфейс Spark и подождите несколько секунд, а затем появится страница пользовательского интерфейса Spark.

Снимок экрана, показывающий открытие веб-интерфейса Spark из журналов работы индикатора прогресса.

Открытие веб-интерфейса Spark на странице сведений о приложении Apache Spark

Веб-интерфейс Spark также можно открыть на странице сведений о приложении Apache Spark. Выберите "Монитор" в левой части страницы и выберите приложение Apache Spark. Откроется страница сведений приложения.

Снимок экрана: открытие веб-интерфейса Spark на странице сведений о приложении Apache Spark.

Для приложения Apache Spark, состояние которого выполняется, кнопка отображает пользовательский интерфейс Spark. Выберите Spark UI, и появится страница Spark UI.

Снимок экрана: кнопка отображает пользовательский интерфейс Spark в запущенном состоянии.

Для приложения Apache Spark, статус которого завершен, состояние может быть Остановлено, Ошибка, Отменено или Завершено. На кнопке показан сервер истории Spark. Выберите сервер журнала Spark и откроется страница пользовательского интерфейса Spark.

Снимок экрана показывает, что кнопка отображает интерфейс Spark в завершённом состоянии.

Вкладка Graph на сервере истории Apache Spark

Выберите идентификатор задания для задания, которое вы хотите просмотреть. Затем выберите Graph в меню инструментов, чтобы получить представление графа задания.

Overview

Общие сведения о задании можно просмотреть на созданном графе заданий. По умолчанию граф отображает все задания. Это представление можно отфильтровать по идентификатору задания.

Снимок экрана с приложением Apache Spark и идентификатором графа заданий.

Display

По умолчанию выбран экран "Ход выполнения". Вы можете проверить поток данных, выбрав "Чтение " или " Запись " в раскрывающемся списке отображения .

Снимок экрана: отображение приложения Spark и графа заданий.

На узле графа отображаются цвета, отображаемые в условных обозначениях тепловой карты.

Снимок экрана, показывающий приложение Spark и тепловую карту графа заданий.

Playback

Чтобы воспроизвести задание, выберите "Воспроизведение". Вы можете выбрать "Остановить " в любое время, чтобы остановиться. Цвета задач отображают различные состояния во время воспроизведения данных:

Color Meaning
Green Выполнено успешно. Задание успешно завершено.
Orange Повторные: экземпляры задач, которые изначально завершились неудачей, но не влияют на конечный результат задания. Эти задачи имели повторяющиеся подходы, которые могут закончиться успешно позже.
Blue Выполнение: выполняется задача.
White Ожидание или пропуск: задача находится в ожидании выполнения, или этап был пропущен.
Red Сбой: задача завершилась ошибкой.

На следующем рисунке показаны зеленый, оранжевый и синий цвета состояния.

Снимок экрана, показывающий приложение Spark и граф заданий в работе, с примерами цветов.

На следующем рисунке показаны зеленые и белые цвета состояния.

Снимок экрана: пример цвета приложения Spark и графа заданий, пропустить.

На следующем рисунке показаны красные и зеленые цвета состояния.

Снимок экрана: пример цвета приложения Spark и графа заданий, произошел сбой.

Note

Сервер журнала Apache Spark разрешает воспроизведение для каждого завершенного задания (но не разрешает воспроизведение неполных заданий).

Zoom

Используйте прокрутку мыши для масштабирования графика задания или выберите "Масштаб по экрану", чтобы он соответствовал экрану.

Скриншот, показывающий приложение Spark и граф заданий, подогнанный по размеру.

Tooltips

Наведите указатель мыши на узел графа, чтобы увидеть подсказку, когда есть неисправные задачи, и выберите этап, чтобы открыть его страницу этапа.

Снимок экрана: подсказка для приложения Spark и диаграммы заданий.

На вкладке графа заданий этапы имеют подсказку и маленький значок, отображаемый, если они имеют задачи, соответствующие следующим условиям:

Condition Description
Неравномерное распределение данных Средний размер данных > для чтения всех задач на этом этапе, умноженный на 2, и объем данных > на чтение составляет 10 МБ.
Отклонение времени > Время выполнения — это среднее время выполнения всех задач на этом этапе, умноженное на 2, и время > выполнения составляет 2 минуты.

Снимок экрана с приложением Spark и иконкой перекоса графа заданий.

Описание узла Graph

Узел графа заданий отображает следующие сведения каждого этапа:

  • ID
  • Имя или описание
  • Общий номер задачи
  • Чтение данных: сумма входных данных и размер считывания
  • Запись данных: сумма выходных данных и размер операций записи
  • Время выполнения: время между временем начала первой попытки и временем завершения последней попытки
  • Число строк: сумма входных записей, выходных записей, перетасованных записей чтения и записи.
  • Progress

Note

По умолчанию узел графа задания отображает сведения из последней попытки каждого этапа (за исключением времени выполнения этапа). Однако во время воспроизведения на узле графа отображаются сведения о каждой попытке.

Размер данных чтения и записи составляет 1 МБ = 1000 КБ = 1000 * 1000 байт.

Предоставьте отзыв

Отправьте отзыв с проблемами, выбрав "Предоставить нам отзыв".

Снимок экрана: отзыв о приложении Spark и графе заданий.

Ограничение на количество стадий

Для повышения производительности граф по умолчанию доступен только в том случае, если приложение Spark имеет менее 500 этапов. Если существует слишком много этапов, это завершится с ошибкой, похожей на эту:

The number of stages in this application exceeds limit (500), graph page is disabled in this case.

В качестве обходного решения перед запуском приложения Spark примените эту конфигурацию Spark, чтобы увеличить ограничение:

spark.ui.enhancement.maxGraphStages 1000

Имейте в виду, что это может привести к низкой производительности как страницы, так и API, так как содержимое может быть избыточным для обработки и отображения браузером.

Исследуйте вкладку "Диагностика" на сервере истории Apache Spark

Чтобы получить доступ к вкладке "Диагностика", выберите идентификатор задания. Затем выберите "Диагностика" в меню инструментов, чтобы получить представление диагностики задания. На вкладке диагностики включены перекос данных, перекос времени и анализ использования исполнителя.

Проверьте перекос данных, перекос времени и анализ использования вычислительных ресурсов, выбирая соответствующие вкладки.

Снимок экрана, показывающий вкладку анализа дисбаланса данных в SparkUI снова.

Отклонение данных

При выборе вкладки "Перекос данных" соответствующие задачи отображаются на основе указанных параметров.

  • Укажите параметры . В первом разделе отображаются параметры, которые используются для обнаружения отклонений данных. Правило по умолчанию: чтение данных задачи в три раза превышает среднее чтение данных задачи и больше 10 МБ. Если вы хотите определить собственное правило для задач с отклонением, можно выбрать параметры. Разделы Смещённый этап и Смещённый символ обновляются соответствующим образом.

  • Этап с искажением - Второй раздел отображает этапы, в которых задачи с искажением соответствуют ранее заданным критериям. Если на этапе существует несколько перекошенных задач, то в таблице перекошенных этапов отображается только самая перекошенная задача (например, наибольшее количество данных для дисбаланса данных).

    Снимок экрана: вкладка

  • Диаграмма перекосов - При выборе строки в таблице этапов перекоса диаграмма отображает дополнительные сведения о распределении задач на основе времени чтения данных и выполнения. Смещённые задачи отмечены красным цветом, а обычные задачи отмечены синим цветом. На диаграмме отображается до 100 примеров задач, а сведения о задаче отображаются на правой нижней панели.

    Снимок экрана с диаграммой перекоса в пользовательском интерфейсе Spark для этапа 10.

Отклонение времени

На вкладке "Отклонение времени" отображаются смещенные задачи, основанные на времени выполнения задач.

  • Укажите параметры . В первом разделе отображаются параметры, которые используются для обнаружения отклонений времени. Критерии по умолчанию для обнаружения отклонений времени: время выполнения задачи превышает три раза среднего времени выполнения, а время выполнения задачи превышает 30 секунд. Параметры можно изменить в зависимости от ваших потребностей. На диаграмме смещённого этапа и диаграмме смещения отображается информация о соответствующих этапах и задачах, как описано ранее на вкладке Смещение данных.

  • Выберите Временное отклонение и затем отфильтрованный результат будет отображен в разделе Этап со сдвигом в соответствии с параметрами, указанными в разделе Указание параметров. Выберите один элемент в разделе Смещённый этап, затем соответствующая диаграмма строится в разделе 3, а детали задачи отображаются на правой нижней панели.

    Снимок экрана: раздел

Анализ использования исполнителя

Эта функция устарела в Fabric. Если вы по-прежнему хотите использовать это в качестве обходного решения, обратитесь к странице, добавив "/executorusage" после пути "/diagnostic" в URL, как показано ниже:

Снимок экрана: изменение URL-адреса.

Журналы исполнителя Spark в режиме свертывания: облегчение доступа для больших и длинных заданий

Поскольку приложения Spark продолжают увеличивать масштаб и длительность, эффективное управление журналами и анализ становятся все более критически важными. Для решения этих растущих потребностей мы представили усовершенствования сервера истории Spark (для завершенных приложений) и пользовательского интерфейса Spark (для запущенных приложений), что позволяет использовать скользящие журналы исполнителя для Spark 3.4 и более поздних версий.

Благодаря этому улучшению, если журнал исполнителя превышает 16 МБ или задание Spark выполняется более одного часа, система автоматически разбивает журналы на почасовые сегменты. Это упрощает навигацию, просмотр и скачивание журналов без работы с чрезвычайно большими файлами.

Теперь вы можете:

  • Просмотр журналов по часам, чтобы быстро определить определенные окна выполнения
  • Доступ к последним активным журналам во время выполнения задания.
  • Загрузите отдельные почасовые записи или все записи вместе, по мере необходимости.

Эта функция позволяет пользователям находить и анализировать журналы из определенной точки времени с легкостью, избегая спешки скачивания или открытия массивного файла журнала.

Ниже приведен пример интерфейса "Журналы исполнителя Rolling Logs":

Снимок экрана, показывающий логи выполнения Spark.