[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for Apache Spark™](../index.md) > [Пошаговые инструкции](index.md) > Логи и мониторинг > Мониторинг состояния Spark-приложений

# Мониторинг состояния Spark-приложений

Чтобы оценить работу Spark-приложений в кластере Yandex Managed Service for Apache Spark™, вы можете проверить:

* [подробную информацию о приложении](#info);
* [подробную информацию о стадиях](#stages);
* [выделенные для приложения ресурсы](#resources);
* [кешируемые таблицы](#tables);
* [список и планы SQL-запросов](#sql).

## Проверить подробную информацию о приложении {#info}

1. Перейдите на [страницу каталога](https://kz.console.yandex.cloud).
1. Перейдите в сервис **Managed Service for Apache Spark**.
1. Нажмите на имя нужного кластера.
1. В блоке **Дополнительные настройки** выберите **Spark History Server** и перейдите по ссылке.

   Откроется список завершенных приложений. Чтобы перейти к списку запущенных приложений, внизу таблицы нажмите **Show incomplete applications**.

1. Найдите нужное приложение и перейдите по ссылке в столбце **App ID**.

   Откроется окно интерфейса **Spark History Server**, вкладка **Jobs** с подробной информацией о выбранном приложении:

   * **Event Timeline** — история выполнения заданий в виде диаграммы. На диаграмме отображены отметки о выделении и освобождении [исполнителей](../concepts/index.md#concepts) (executors), статусы заданий.
   * **Active Jobs** — список заданий, которые выполняются либо ожидают начала выполнения.
   * **Completed Jobs** — список завершенных заданий.

   Для каждого задания в таблице указаны:

   * время запуска (**Submitted**);
   * продолжительность выполнения (**Duration**);
   * количество стадий — завершенных/всего (**Stages: Succeeded/Total**);
   * количество операций — завершенных/всего (**Tasks (for all stages): Succeeded/Total**).

## Проверить подробную информацию о стадиях {#stages}

1. Перейдите на [страницу каталога](https://kz.console.yandex.cloud).
1. Перейдите в сервис **Managed Service for Apache Spark**.
1. Нажмите на имя нужного кластера.
1. В блоке **Дополнительные настройки** выберите **Spark History Server** и перейдите по ссылке. Откроется окно интерфейса **Spark History Server**.
1. В верхнем меню перейдите в раздел **Stages**.

   В интерфейсе представлена таблица **Completed Stages** со списком всех стадий задания. Для каждой стадии указаны:
   * время запуска (**Submitted**);
   * продолжительность выполнения (**Duration**);
   * количество операций — завершенных/всего (**Tasks: Succeeded/Total**);
   * объем данных shuffle (**Shuffle Read/Write**);
   * объем прочитанных и записанных данных (**Input/Output**).

   Чтобы получить детальную информацию о стадии, нажмите на текст в столбце **Description**. На странице **Details for Stage** отображаются:
   * **DAG Visualization** — визуализация графа выполнения;
   * **Event Timeline** — история выполнения стадии в виде диаграммы с различными показателями;
   * сводные метрики операций:
      * **Duration** — продолжительность выполнения;
      * **GC Time** — время сборки мусора;
      * **Input Size/Records** — объем входных и записанных данных.
   * **Aggregated Metrics by Executor** — метрики по исполнителю;
   * **Tasks** — таблица с информацией по операциям.

## Проверить выделенные для приложения ресурсы {#resources}

1. Перейдите на [страницу каталога](https://kz.console.yandex.cloud).
1. Перейдите в сервис **Managed Service for Apache Spark**.
1. Нажмите на имя нужного кластера.
1. В блоке **Дополнительные настройки** выберите **Spark History Server** и перейдите по ссылке. Откроется окно интерфейса **Spark History Server**.
1. В верхнем меню перейдите в раздел **Executors**.

   В интерфейсе представлены две таблицы:

   * **Summary** — обобщенная информация о количестве и состоянии [исполнителей](../concepts/index.md#concepts) и используемых ресурсах.
   * **Executors** — информация по каждому исполнителю.

   В таблицах приведено:

   * количество доступных для каждого исполнителя ресурсов;
   * количество выполняемых и завершенных [операций](../concepts/index.md#job) (tasks);
   * продолжительность выполнения операции (**Task Time**) с указанием времени, затраченного на сборку мусора (**GC Time**).

   {% note tip %}

   Если сборка мусора занимает много времени:

   * Убедитесь, что исполнителю выделяется достаточно оперативной памяти.
   * Настройте сборщик мусора вручную. Ознакомьтесь с инструкцией в [документации Apache Spark](https://spark.apache.org/docs/latest/tuning.html#garbage-collection-tuning).

   {% endnote %}

## Проверить кешируемые таблицы {#tables}

1. Перейдите на [страницу каталога](https://kz.console.yandex.cloud).
1. Перейдите в сервис **Managed Service for Apache Spark**.
1. Нажмите на имя нужного кластера.
1. В блоке **Дополнительные настройки** выберите **Spark History Server** и перейдите по ссылке. Откроется окно интерфейса **Spark History Server**.
1. В верхнем меню перейдите в раздел **Storage**.

   В интерфейсе представлен список кешируемых таблиц ([RDDs](https://spark.apache.org/docs/latest/rdd-programming-guide.html#resilient-distributed-datasets-rdds)). Для каждой таблицы приведена информация об используемой оперативной памяти и занимаемом дисковом пространстве, а также прогресс кеширования.

   Чтобы посмотреть детальную статистику, нажмите на имя таблицы.

## Проверить список и планы SQL-запросов {#sql}

1. Перейдите на [страницу каталога](https://kz.console.yandex.cloud).
1. Перейдите в сервис **Managed Service for Apache Spark**.
1. Нажмите на имя нужного кластера.
1. В блоке **Дополнительные настройки** выберите **Spark History Server** и перейдите по ссылке. Откроется окно интерфейса **Spark History Server**.
1. В верхнем меню перейдите в раздел **SQL/DataFrame**.

   В таблице представлен список выполненных SQL-запросов с информацией о времени запуска и продолжительности их выполнения.

   Чтобы получить план выполнения запроса, нажмите на текст запроса в столбце **Description**. План выполнения представлен в виде схемы. Чтобы увидеть текстовый вариант плана, нажмите **Details** в нижней части рисунка.

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