Отладка и диагностика приложений Spark в кластерах больших данных SQL Server в сервере истории Spark

Область применения: SQL Server 2019 (15.x)

Important

Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.

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

Доступ к серверу истории Spark

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

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

Откройте сервер истории Spark, перейдя по следующему URL-адресу, заменив <Ipaddress> и <Port> на конкретную информацию о кластере больших данных. В кластерах, развернутых до SQL Server 2019 CU 5, с настройкой кластера больших данных с базовой аутентификацией (имя пользователя/пароль), вы должны ввести пользователя root, когда появляется запрос на вход в конечные точки шлюза (Knox). См. раздел "Развертывание кластера больших данных SQL Server". Начиная с SQL Server 2019 (15.x) CU 5 при развертывании нового кластера с базовой проверкой подлинности всех конечных точек, включая использование AZDATA_USERNAME шлюза и AZDATA_PASSWORD. Конечные точки в кластерах, которые обновлены до накопительного пакета обновления 5, продолжают использовать root в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям с помощью проверки подлинности Active Directory. См. учетные данные для доступа к службам через конечную точку шлюза в заметках о выпуске.

https://<Ipaddress>:<Port>/gateway/default/sparkhistory

Веб-интерфейс сервера журнала Spark выглядит следующим образом:

Сервер журнала Spark

Вкладка "Данные" на сервере истории Spark

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

  • Проверьте входные данные, выходные данные и операции таблицы , выбрав вкладки отдельно.

    Вкладки данных сервера истории Spark

  • Скопируйте все строки, нажав кнопку "Копировать".

    Копирование всех строк

  • Сохраните все данные в виде CSV-файла, нажав кнопку CSV.

    Сохранение данных в виде CSV-файлов

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

    Поиск с ключевыми словами

  • Щелкните заголовок столбца, чтобы сортировать таблицу, щелкните знак "плюс", чтобы развернуть строку, чтобы отобразить дополнительные сведения, или щелкните знак минуса, чтобы свернуть строку.

    Функциональные возможности таблицы данных

  • Скачайте один файл, нажав кнопку Частичное скачивание , расположенную справа, затем выбранный файл скачан в локальное место. Если файл больше не существует, откроется новая вкладка, чтобы отобразить сообщения об ошибках.

    Скачивание строки данных

  • Скопируйте полный путь или относительный путь, выбрав полный путь копирования, скопируйте относительный путь , развернутый в меню загрузки. Для файлов хранилища Azure Data Lake Отрыть в Обозревателе хранилища Azure запустит Обозреватель хранилища Azure. Перейдите к точной папке при входе в систему.

    Копирование полного или относительного пути

  • Щелкните номер под таблицей, чтобы перейти на страницы, когда слишком много строк для отображения на одной странице.

    Data page

  • Наведите указатель мыши на вопросительный знак рядом с данными, чтобы отобразить подсказку, или щелкните вопросительный знак, чтобы получить дополнительные сведения.

    Дополнительные сведения о данных

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

    graph feedback

Вкладка "Графики" на сервере истории Spark

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

  • Ознакомьтесь с общими сведениями о задании с помощью созданного графа заданий.

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

    Идентификатор графа задания

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

    graph display

    Узел графа отображается в цвете, представляющем тепловую карту.

    graph heatmap

  • Запустите задание, нажав кнопку воспроизведения и остановив его в любое время, нажав кнопку остановки. Цветное отображение задачи для индикации разного состояния при воспроизведении:

    • Зеленый означает, что задание выполнено успешно: задание успешно завершено.
    • Оранжевый для отметки "ошибка": задачи, завершившиеся ошибкой, но не влияющие на конечный результат работы. Эти задачи имели повторяющиеся или повторные экземпляры, которые могут завершиться успешно.
    • Синий цвет указывает на выполнение: задача выполняется.
    • Белый цвет для ожидания или пропуска: задача ожидает выполнения, или этап пропущен.
    • Красный для сбоя: задача завершилась ошибкой.

    Пример цвета графа, выполнение

    Пропущенный этап отображается в белом цвете. Пример цвета графика, пропустить

    Пример цвета графики, ошибка

    Note

    Допускается воспроизведение каждого задания. Для незавершённой работы воспроизведение не поддерживается.

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

    Масштабирование графа для соответствия

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

    graph tooltip

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

    • Перекос данных: размер чтения данных > меньше, чем средний размер чтения данных каждой задачи на этом этапе, умноженный на 2, и размер чтения данных > меньше 10 МБ.
    • Отклонение времени выполнения: > среднее время выполнения всех задач на этом этапе * 2 и время > выполнения 2 мин

    Значок перекоса графа

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

    • ID.
    • имя или описание;
    • общее количество задач;
    • Данные считываются: суммы входных данных и размер считывания.
    • Запись данных: сумма объёма выхода и размера записи при перемешивании.
    • время выполнения: время от начала первой попытки до завершения последней попытки;
    • число строк: сумма входных записей, выходных записей, записей смешанного чтения и записей смешанной записи;
    • Progress.

    Note

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

    Note

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

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

    graph feedback

Вкладка "Диагностика" в журнале истории Spark

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

  • Проверьте перекос данных, отклонение времени и анализ использования процессора, выбрав вкладки соответственно.

    Diagnosis tabs

Data Skew

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

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

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

    Раздел

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

    Раздел

Time Skew

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

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

  • Щелкните "Временное отклонение", затем отфильтрованный результат отображается в разделе "Этап Временного Отклонения" в соответствии с параметрами, указанными в разделе "Указание параметров". Щелкните один элемент в разделе Skewed Stage, затем соответствующая диаграмма создается в section3, а сведения о задаче отображаются в правой нижней панели.

    Раздел

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

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

  • Щелкните Анализ использования исполнителя, а затем создаём четыре типа кривых использования исполнителя. Они включают выделенных исполнителей, активных исполнителей, бездействующих исполнителей и максимальное количество экземпляров исполнителя. В отношении выделенных исполнителей каждое событие "Исполнитель добавлен" или "Исполнитель удален" будет увеличивать или уменьшать количество выделенных исполнителей. Дополнительные возможности сравнения доступны на временной шкале событий на вкладке "Задания".

    Executors tab

  • Щелкните значок цвета, чтобы выбрать или отменить выбор соответствующего содержимого во всех черновиках.

    Select chart

Логи Spark и Yarn

Помимо сервера истории Spark вы можете найти журналы для Spark и Yarn здесь, соответственно:

  • Журналы событий Spark: hdfs:///system/spark-events
  • Журналы Yarn: hdfs:///tmp/logs/root/logs-tfile

Примечание. Оба этих журнала имеют срок хранения по умолчанию 7 дней. Если вы хотите изменить срок хранения, см. страницу "Настройка Apache Spark и Apache Hadoop ". Невозможно изменить расположение.

Known issues

Сервер истории Spark имеет следующие известные проблемы:

  • В настоящее время он работает только для кластера Spark 3.1 (CU13+) и Spark 2.4 (CU12-).

  • Входные и выходные данные с помощью RDD не отображаются на вкладке "Данные".

Next steps